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
( bug 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:
-URL 上运行内容脚本):
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);
关于javascript - chrome.tabs.executeScript 在 chrome.tabs.create 回调中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21263360/