gpt4 book ai didi

javascript - 如何打开我的 options.html?目前我得到 Cannot read property 'create' of undefined

转载 作者:行者123 更新时间:2023-12-01 02:21:25 25 4
gpt4 key购买 nike

xhr.onreadystatechange = function() {
if(this.readyState == this.HEADERS_RECEIVED) {
chrome.tabs.create({
url: "chrome-extension://kgllckjehjabihppilipeagjojdmlfch/options.html"
});
}

我发现应该有效。我也尝试使用 url: "options.html" 进行相同的操作。但是当代码运行时,我得到

Uncaught TypeError: Cannot read property 'create' of undefined at XMLHttpRequest.xhr.onreadystatechange (myscript.js:70)

最佳答案

您正在尝试在内容脚本中使用 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 扩展协议(protocol),而 Firefox 不支持使用 window.open。

这是我在后台脚本中打开选项页面的方式:

chrome.runtime.openOptionsPage();

如果您需要在内容脚本中调用它,请使用消息传递:https://developer.chrome.com/apps/messaging

示例:

背景.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"});

关于javascript - 如何打开我的 options.html?目前我得到 Cannot read property 'create' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49192636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com