在谷歌浏览器扩展程序上打开一个新标签
Opening a new tab on Google Chrome Extension
这是我的背景.html文件,在当前选项卡中打开时工作正常,但我希望它在新选项卡中打开,我做错了什么?
<html>
<head>
<script>
// Called when the user clicks on the browser action.
chrome.browserAction.onClicked.addListener(function(tab) {
var action_url = "javascript:location.href='http://www.reddit.com/submit?url='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title)";
chrome.tabs.create(tab.id, {url: action_url}, function(tab));
});
</script>
</head>
</html>
您应该再次阅读chrome.tabs.create
文档。您正在向它传递 invald 参数。您还使用来自background.html
文档而不是代码期望的网页文档的location
,而不是传递给chrome.browserAction.onClicked
侦听器的tab
参数。
<html>
<head>
<script>
// Called when the user clicks on the browser action.
chrome.browserAction.onClicked.addListener(function(tab) {
var action_url = "http://www.reddit.com/submit?url=" + encodeURIComponent(tab.href) + '&title=' + encodeURIComponent(tab.title);
chrome.tabs.create({ url: action_url });
});
</script>
</head>
</html>
你可以
试试这个
<html>
...
<body>
<script>
function createTab() {
chrome.tabs.create({url: "http://www.stackoverflow.com"});
}
</script>
<a href="#" onclick="createTab();">Create a new tab</a>
</body>
</html>
<html>
<head>
<script type="text/javascript">
window.master = ({
newtab: function(url, callback) {
callback = callback === true ? (function() { this.close(); }) : callback;
try {
chrome.tabs.create({
url: url
});
if(typeof callback === "function") { callback.call(this, url); }
} catch(e) {
/* Catch errors due to possible permission issues. */
}
},
link: function(event, close) {
event = event ? event : window.event;
event.preventDefault();
this.newtab(event.href, close);
},
close: function() { window.self.close(); }
});
</script>
</head>
<body>
<!-- Usage is simple:
HTML:
<a href="http://example.com/" onclick="master.link(event)" />
JavaScript:
master.newtab("http://example.com/", true);
-->
</body>
</html>
如果您坚持使用弹出窗口并希望它在打开后立即关闭,请使用上面的内容。只需将链接字符串和true
布尔值添加到 master.newtab
函数,即可使其打开新选项卡,然后关闭弹出窗口。
如果您改变主意关闭弹出窗口,则可以将true
布尔值替换为要执行的函数(如果创建新选项卡没有任何错误(。还可以使用 master.link
函数从锚元素调用 master.newtab
函数。
使用Chrome扩展程序最好的事情是,您永远不必担心支持问题! :D
相关文章:
- 为什么可以't我在谷歌浏览器中返回cookie
- 谷歌浏览器没有阅读Jsfidle程序
- 如何创建一个谷歌地图地理坐标数组
- 在jQuery周期内触发一个谷歌时髦的脚本
- Javascript字母选择没有'我不能在谷歌浏览器上工作
- 我的时间倒计时脚本在谷歌浏览器中工作正常,但在其他浏览器中打开时它显示为南楠
- 列出谷歌浏览器中安装的所有扩展程序
- 谷歌浏览器模式正则表达式在使用setCustomValidity动态创建表单时不起作用
- 在谷歌浏览器中用程序固定一个标签
- 让谷歌浏览器扩展程序只在一个标签上工作
- 谷歌浏览器不显示一个站点的alert()弹出窗口
- 离线谷歌浏览器扩展程序/打包应用:尝试将表单数据从一个本地页面发送到另一个本地页面
- 打开一个新的谷歌浏览器标签并获取源代码
- 在谷歌浏览器扩展程序上打开一个新标签
- 我如何使用谷歌浏览器作为一个node.js服务器
- 填写用户名和密码后,当我按下一个回车键无法登录ie,但谷歌浏览器工作正常.如何来
- JS警报从一个弹出式扩展在谷歌浏览器
- 谷歌浏览器-这是一个BUG吗?Javascript的问题?触摸屏输入不工作
- Javascript——将窗口高度增加一个像素——谷歌浏览器
- 谷歌浏览器也有一个控制台对象.其中是其等效的 API 页面