我正在为网站编写内容脚本,而我正在尝试在网站导航栏中的扩展程序中添加链接。我试过这个
var linksListEl = document.querySelector("#top_bar .links");
var newLink = document.createElement("li");
newLink.innerHTML = '<a href="' + chrome.extension.getURL("options/options.html") + '">Kioku</a>';
linksListEl.insertBefore(newLink, linksListEl.children[0]);
使用正确的网址正确显示,但当我点击它时,它会转到包含网址about:blank
的空白页面。如果我复制链接的URL并粘贴在omnibar中,我会得到我想要的页面,所以我认为有一种机制可以防止网页链接到chrome-extension?
有没有办法正确链接 ?
<小时/> 编辑:这是扩展名。我正在尝试在http://beta.jisho.org/的导航栏中添加一个链接到
<extension>/options/options.html/
。该网站的内容脚本为jisho-kioku/beta-jisho.js
。
https://github.com/odraencoded/jisho-kioku
P.S。:我不认为上述信息有多大价值,但是:/
答案 0 :(得分:0)
您可以侧身迈出一步,而是让您的活动页面打开选项页面。
内容脚本:
var linksListEl = document.querySelector("#top_bar .links");
var newLink = document.createElement("li");
newLink.innerHTML = '<a href="#" id="optionsLink">Kioku</a>';
linksListEl.insertBefore(newLink, linksListEl.children[0]);
document.querySelector("#optionsLink").addEventListener("click", showOptions);
function showOptions(){
chrome.runtime.sendMessage({type : "show-options"});
}
活动页面:
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.type == "show-options") {
chrome.tabs.update( // Or open a new tab if desired
sender.tab.id,
{url: chrome.runtime.getURL("options/options.html")}
);
}
/* ... */
}
}