我正试图追加一个div到当前活动标签页。但是,我得到了这个错误:
Error during tabs.executeScript: Cannot access contents of url ....
Extension manifest must request permission to access this host.
我的代码:(show_loader.js)
var dv = document.createElement('div');
dv.id = 'myid';
dv.innerHTML = 'test';
document.body.appendChild(dv);
但是当我把这段代码:
document.body.style.backgroundColor = 'green';
如预期的那样工作,当前选项卡的背景颜色改变,除了从popup.js运行的show_loader. js文件中的代码外,没有其他变化,如下所示:
chrome.tabs.executeScript(null, {file: "show_loader.js"});
我的清单文件也有:
"permissions":
[
"tabs",
"notifications",
"http://*/",
"https://*/"
],
所以我想知道为什么它给上述错误时,我试图做任何事情以外的设置背景颜色。即使是简单的alert
或console.log
单独在该页面上给出相同的上述错误。
怎么解决?
更新:完成相关代码
清单:
{
... name and description ...
"icons":
{
"16" : "img/icon.png",
"48" : "img/48.png",
"128" : "img/128.png"
},
"permissions":
[
"tabs",
"notifications",
"http://*/*",
"https://*/*"
],
"browser_action":
{
"default_icon": "img/icon.png",
"default_title": "Page title",
"default_popup": "popup.html"
}
}
popup.js
// send data to server for saving
$('#btn').click(function(){
chrome.tabs.executeScript(null, {file: "show_loader.js"});
$loader.show();
var data = $(this).closest('form').serialize();
$.ajax({.....});
});
window.onload = function(){
var $loader = $('#loader');
$loader.show();
chrome.tabs.getSelected(null, function(tab) {
//console.log(tab);
$('#url').val(tab.url);
$('#title').val(tab.title);
$loader.hide();
});
};
popup.html
<html>
<head>
<link rel="stylesheet" href="css/style.css" type="text/css" />
</head>
<body>
<form action="" method="post" name="frm" id="frm">
<table border="0" cellpadding="3" cellspecing="0" width="370">
......
</table>
</form>
<script src='js/jquery.js'></script>
<script src='popup.js?v=014423432423'></script>
</body>
</html>
show_loader.js
console.log($); // doesn't work
// document.body.style.backgroundColor = 'green'; // WORKS
3条答案
按热度按时间lyfkaqu11#
清单v3使用不同的permission schema。这就是我的工作:
gab6jxml2#
工作的代码
manifest.json
popup.html
back.js
script.js
尝试从代码中删除不推荐使用的
chrome.tabs.getSelected
,并使用Chrome.tabs.query。示例用法
编辑1
如果你的目的是捕捉当前窗口中的活动浏览标签,他点击了
browser action
使用此代码neskvpey3#
下面的代码对我有用: