gpt4 book ai didi

google-chrome-extension - Chrome 扩展 : managing multiple html pages in an extension

转载 作者:行者123 更新时间:2023-12-02 05:04:13 24 4
gpt4 key购买 nike

我想在我的扩展中有几个 html 文件,这样我就可以根据某些条件或事件打开它们中的每一个。假设我希望当用户在上下文菜单中选择一个选项时打开 a.html。

我尝试了以下方法:

list .json:

{
"name": "My extension",
"version": "1.1",
"background": { "page": ["background.html"] },
"incognito": "split",
"permissions": ["tabs", "<all_urls>", "contextMenus"],
"icons": { "16": "images/16.png" },
"manifest_version": 2
}

背景.html:

<!DOCTYPE html>
<html>
<head>
<script src="background.js"></script>
<script src='someWindow.js'></script>
</head>
<body>
</body>
</html>

背景.js:

var winID;
chrome.contextMenus.onClicked.addListener(function proccess_interested(info, tab){

chrome.tabs.create({active: false}, function(newTab) {

// After the tab has been created, open a window to inject the tab into it.
chrome.windows.create(
{
tabId: newTab.id,
type: "popup",
url: chrome.extension.getURL('a.html'),
focused: true
},function(window){
winID = newWindow.id;
});
});
})

chrome.extension.onMessage.addListener(function(Msg, sender, sendResponse) {

if(Msg.close_comment_win){
chrome.windows.remove(winID, function(){});
}
});

someWindow.js:

function hide_win()
{
chrome.extension.sendMessage({close_win: close}, function(response) {});
}

a.html:

<!DOCTYPE html>
<html>
<head>

<script src='someWindow.js'></script>

head //with tags, can't show it here
body
<input type='button' value=' Cancel ' onclick="hide_win()"></input>

</body>
</html>

单击上下文菜单时会打开窗口,但单击取消时不会关闭窗口。 console.log 说:拒绝执行内联事件处理程序,因为它违反了以下内容安全策略指令:“script-src 'self' chrome-extension-resource:”。 我想原因是.html 不是扩展的一部分,即使触发 sendMessage 的 someWindow.js 是扩展的一部分

通过 list 在扩展中包含 a.html 不是一种选择,因为最多只能包含一个背景 html 页面。

当然,将 chrome.windows.remove(winID, function(){}); 直接放在 hide_win() 中而不使用 sendMessage 时,我得到的结果是一样的。

关于如何完成这项工作有什么想法吗?

最佳答案

正如错误所说,它是针对v2的content security policy的在扩展 html 页面中包含任何内联代码。只需将该处理程序移动到您的 js 文件,它应该可以正常工作。

关于google-chrome-extension - Chrome 扩展 : managing multiple html pages in an extension,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16531114/

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