javascript - 为什么我的 Chrome 扩展代码无法打开新标签页?

标签 javascript google-chrome-extension

我正在尝试制作一个扩展程序,使新选项卡在加载新页面时打开一个特定的 URL。我想我应该从学习如何创建一个新标签开始。我的代码如下。

list .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>

最佳答案

JavaScript and HTML must be in separate files 以来,内联函数 createTab() 从未执行过和内联语句是不允许的。

相反,绑定(bind)到您的 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;

关于javascript - 为什么我的 Chrome 扩展代码无法打开新标签页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22395968/

相关文章:

javascript - 有没有办法阻止脚本加载两次? JavaScript

javascript - 关于数组和对象的基本问题

google-chrome-extension - 如何从 JS 开发控制台访问用 Chrome 扩展编写的函数?

google-chrome - Chrome 扩展程序,消息 : getting port status

javascript - Chrome 扩展 : have an extension listen for an event on a page?

python - 使用 Selenium 时如何选择要启用的 Chrome 扩展

javascript - 从后台页面捕获所有选项卡的 onHistoryStateUpdated 事件

javascript - 简单的javascript : arrays,和表单信息收集

javascript - 寻找一种优雅的方式来加载 JS 并执行它

javascript - 如何使用javascript获取所有HTML表单数据并将其保存为pdf格式?