2014-03-14 76 views
1

我试图做一个扩展,使一个新的标签打开到一个新的页面加载特定的URL。我想我应该从学习如何创建一个新标签开始。我的代码如下。为什么我的Chrome扩展程序代码未打开新选项卡?

的manifest.json

{ 
    "manifest_version": 2, 

    "name": "name", 
    "description": "desctiption", 
    "version": "1.0", 

    "permissions": [ 
    "tabs", 
    "<all_urls>" 
    ], 
    "browser_action": { 
    "default_icon": "icon.png" 
    }, 
    "background" : { 
    "page" : "background.html", 
    "persistent" : false 
    } 
} 

//something.js 
function createTab() { 
    chrome.tabs.create({url: "http://www.stackoverflow.com"}); 
} 

<!--background.html--> 
<html> 
    <head> 
    <body> 
     <script src="something.js"></script> 
     <a href="#" onclick="createTab();">Create a new tab</a> 
    </body> 
    </head> 
</html> 

回答

2

内联函数createTab()因为JavaScript and HTML must be in separate files从不执行和内嵌的语句是不允许的。

相反,绑定到您的JS文件中的事件并将您的标记移动到元素下面。

例如,HTML:

<body> 
    <a id="myHREF">Create a new tab</a> 
    <script src="popup.js"></script> 
</body> 

而JavaScript:

function createTab() { 
    chrome.tabs.create({ 
     url: "http://www.stackoverflow.com" 
    }); 
} 

document.getElementById("myHREF").onclick = createTab; 
+0

我觉得OP提到,HTML和JS都已经在不同的文件 – sachinjain024

+0

注意background.html和something.js并在background.html中包含something.js以显示它。不是吗? – sachinjain024

+0

我正在谈论内联语句“createTab();”。这不会发射。 –

相关问题