我是初学者,正在构建Chrome扩展程序。我使用Chrome扩展程序开发人员文档中描述的功能创建了一个按钮,可以在“popup.html”中创建一个新选项卡。无论我从Stack Overflow尝试过哪种方法,它都无法正常工作。 我的代码如下:
<html>
<head>
<title>Facebook Connect For Chrome Extension</title>
<script type="text/javascript" src="background.js"></script>
<script type="text/javascript" src="popup.js"></script>
<script>
function showIndex(){
var index_url="/index.html",
chrome.tabs.create({
url: index_url
}),
}
</script>
<body>
<button value="tab" style="width:100px; height:100px;" onclick="showIndex();">Go to Index</button>
</body>
或
function createTab() {
chrome.tabs.create({url: "/index.html"});
}
<a href="#" onclick="creatTab();">Go to Index</a>
这两种选择似乎都不起作用。
所以我想知道这个函数是否应该放在background.js中?如果没有,请告诉我这段代码有什么问题。提前致谢!
BTW我将网址更改为www.stackoverflow.com
。它仍然是相同的---不工作。
答案 0 :(得分:3)
看起来你在HTML中拼写错误了。
您的问题可能是Chrome不允许您在扩展程序中使用“不安全”代码。 See the documentation here。你的html中不能有javascript。您必须订阅DOM元素上的事件处理程序。
<html>
<head>
<title>Facebook Connect For Chrome Extension</title>
<script type="text/javascript" src="background.js"></script>
<script type="text/javascript" src="popup.js"></script>
<body>
<button id="index" value="tab" style="width:100px; height:100px;">Go to Index</button>
<script type="text/javascript" src="indexStuff.js"></script>
</body>
</html>
然后您需要一个带有此
的新indexStuff.js文件function showIndex() {
var index_url = "/index.html";
chrome.tabs.create({
url: index_url
});
}
document.getElementById('index').addEventListener("click", showIndex);
注意,如果添加事件处理程序以检查DOM何时加载,脚本标记可以移动到顶部。
答案 1 :(得分:1)
function showIndex(){
var index_url="/index.html",//why are you using "," instead of ";"?
chrome.tabs.create({
url: index_url
}), //why are you using "," instead of ";"?
}
为什么你在行尾使用“,”而不是“;”?
答案 2 :(得分:0)
您可以使用window.open(url, title, options)
通过JavaScript打开弹出窗口。
options
是一个包含一个或多个这些变量(或空)的字符串:
width
窗口宽度
height
窗口的高度
location
网址是否可见
status
状态栏是否可见
menubar
菜单栏是否可见
directories
我猜这是书签栏
toolbar
工具栏(背面,家庭等)可见或不可用
resizable
是否可重新调整大小
scrollbars
是否启用滚动条
e.g:
window.open('http://website.com/popup.html', 'Popup Window', 'width=640,height=480,location=yes,scrollbars=yes');