xhr.onreadystatechange = function() {
if(this.readyState == this.HEADERS_RECEIVED) {
chrome.tabs.create({
url: "chrome-extension://kgllckjehjabihppilipeagjojdmlfch/options.html"
});
}
我发现的应该是有效的。我也尝试使用url: "options.html"
。但是当代码运行时,我得到了
未捕获的TypeError:无法读取未定义的属性“create” 在XMLHttpRequest.xhr.onreadystatechange(myscript.js:70)
答案 0 :(得分:2)
您正在尝试在内容脚本中使用chrome.tabs.create。此API仅适用于后台脚本。而是使用window.open从内容脚本中创建新选项卡。
// Regular webpage; works
window.open("https://google.com");
// Privileged URL; is redirected to about:blank
window.open("chrome-extension://kgllckjehjabihppilipeagjojdmlfch/options.html");
对于选项页面,这样做不,因为它使用chrome-extension协议,Firefox不支持使用window.open。
这是我在后台脚本中打开我的选项页面的方式:
chrome.runtime.openOptionsPage();
如果您需要在内容脚本中调用它,请使用消息:https://developer.chrome.com/apps/messaging
示例:
background.js
chrome.runtime.onMessage.addListener(function(message) {
switch (message.action) {
case "openOptionsPage":
openOptionsPage();
break;
default:
break;
}
});
function openOptionsPage(){
chrome.runtime.openOptionsPage();
}
content_script.js
chrome.runtime.sendMessage({"action": "openOptionsPage"});