为什么我的Chrome扩展程序代码无法打开新标签?

时间:2014-03-14 04:13:18

标签: javascript google-chrome-extension

我正在尝试制作一个扩展程序,使新标签在加载新页面时对特定网址开放。我想我应该首先学习如何创建一个新标签。我的代码如下。

的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>

1 个答案:

答案 0 :(得分: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;