chrome.tabs.executeScript 在 chrome.tabs.create 回调中不起作用


chrome.tabs.create({
    url: "about:blank"
}, function (tab) {
    chrome.tabs.executeScript(tab.id, {
        code: "window.setTimeout(function() {document.write("123")},5000);"
    })
});

我正在编写一个简单的Chrome插件,并想打开一个仅包含" 123"的新标签。我已经在使用Settimeout来确保加载后代码运行,但是" 123"不会写入。我在做什么错?

您无法在 about:blank上运行任何内容脚本(错误55084,bug 76429)。

如果要在新选项卡中显示信息,请使用data: -URL,

chrome.tabs.create({
    url: "data:text/html,<script>" + 
         "window.setTimeout(function() {document.write("123")},5000);" +
         "</script>"
});

或Chrome扩展中的页面(注意:chrome.tabs.executeScript也不能用于在chrome-extension: -urls上运行内容脚本):

chrome.tabs.create({
    // TODO: Create a file called view.html that renders the result
    url: chrome.runtime.getURL("view.html")
});

view.html受CSP的约束,因此,如果要使用脚本,则必须将其放入单独的文件中:

<!-- view.html -->
<script src="view.js"></script>
// view.js
window.setTimeout(function() {document.write("123")},5000);

最新更新