Chrome 扩展通过 link 打开新标签
Chrome Extension open new tab via link
我正在尝试创建一个 Chrome 扩展来列出我和我的一些同事每天处理的所有服务器。但是,我陷入了一些简单的问题;我似乎无法让 link 为服务器打开新的 Chrome 选项卡。
manifest.json
:
{
"name": "Servers",
"version": "1.0",
"manifest_version": 2,
"description": "Servers List",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "servers.html"
},
"permissions": ["tabs"],
"background": {
"scripts": ["popup.js"]
}
}
popup.js
:
document.addEventListener('DOMContentLoaded', function() {
document.getElementById("myLink").addEventListener("click", function(){
chrome.tabs.create({ url: "http://www.google.com" });
});
});
servers.html
:
<html>
<body>
<div id="header">
<h1>Servers</h1>
</div>
<div id="nav">
<h3>iPortal</h3>
<ul>
<li> <a id="myLink">PTMIPS06</a></li>
</ul>
</div>
</body>
</html>
我不明白我做错了什么。我已经直接在控制台中完成了 chrome.tabs.create
部分,并且它有效,所以我知道这不是问题所在。我也尝试过其他方法让点击事件起作用,但我没有成功。我做错了什么?
请阅读 Architecture Overview 以获得 Chrome 扩展名。小心。
完成了吗?那么你就会知道弹出页面和背景页面不是一回事。它们是两个独立的文档,一个始终打开但不可见,另一个仅在显示弹出窗口时打开。
现在,他们身上发生了什么?
在后台页面中,您有一个空白的 HTML 文件和您的 popup.js
脚本。代码执行,但其中没有元素 #myLink
,在 addEventListener
.
上抛出致命错误
在弹出页面中,您有静态 HTML,但没有脚本。所以你的 link 什么都不做。
不应将 popup.js
添加到背景页面,而应将其包含在带有 <script>
标记的弹出窗口中。
我正在尝试创建一个 Chrome 扩展来列出我和我的一些同事每天处理的所有服务器。但是,我陷入了一些简单的问题;我似乎无法让 link 为服务器打开新的 Chrome 选项卡。
manifest.json
:
{
"name": "Servers",
"version": "1.0",
"manifest_version": 2,
"description": "Servers List",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "servers.html"
},
"permissions": ["tabs"],
"background": {
"scripts": ["popup.js"]
}
}
popup.js
:
document.addEventListener('DOMContentLoaded', function() {
document.getElementById("myLink").addEventListener("click", function(){
chrome.tabs.create({ url: "http://www.google.com" });
});
});
servers.html
:
<html>
<body>
<div id="header">
<h1>Servers</h1>
</div>
<div id="nav">
<h3>iPortal</h3>
<ul>
<li> <a id="myLink">PTMIPS06</a></li>
</ul>
</div>
</body>
</html>
我不明白我做错了什么。我已经直接在控制台中完成了 chrome.tabs.create
部分,并且它有效,所以我知道这不是问题所在。我也尝试过其他方法让点击事件起作用,但我没有成功。我做错了什么?
请阅读 Architecture Overview 以获得 Chrome 扩展名。小心。
完成了吗?那么你就会知道弹出页面和背景页面不是一回事。它们是两个独立的文档,一个始终打开但不可见,另一个仅在显示弹出窗口时打开。
现在,他们身上发生了什么?
在后台页面中,您有一个空白的 HTML 文件和您的
popup.js
脚本。代码执行,但其中没有元素#myLink
,在addEventListener
. 上抛出致命错误
在弹出页面中,您有静态 HTML,但没有脚本。所以你的 link 什么都不做。
不应将 popup.js
添加到背景页面,而应将其包含在带有 <script>
标记的弹出窗口中。