我正在学习如何编写chrome扩展,我发现了一个例子,使用browseaction可以改变网页的背景颜色,我正在尝试做一些非常相似的事情,改变背景图像,但由于某种原因...它不起作用,js功能是:
function click(e) {
chrome.tabs.executeScript(null,
{code:"document.body.style.background=url('ffrontier.jpg')"});
window.close();
}
我很确定这是关于我的sintax但是我无法弄明白,有人可以帮助我吗?感谢很多
答案 0 :(得分:2)
首先,您需要在manifest.json文件中指定资源(请参阅Web Accessible Resources),如下所示:
"web_accessible_resources": ["ffrontier.jpg"]
其次,您应该像这样指定完整的图片网址:
function click(e) {
chrome.tabs.executeScript(null,
{code:"var imgURL = chrome.extension.getURL('ffrontier.jpg'); document.body.style.backgroundImage='url(' + imgURL + ')'"});
window.close();
}
答案 1 :(得分:1)
更新:只有像网址(http://www.stackoverflow.com)这样的外部网址可以使用,而不是本地文件。抱歉。
我只是删除了url()
中的引号,它对我有效!
function click(e) {
chrome.tabs.executeScript(null,
{code:"document.body.style.backgroundImage = 'url(ffrontier.jpg)'"});
}
答案 2 :(得分:0)
您需要更改background-image
属性,而不是background
属性(指的是页面的背景颜色)。
function click(e) {
chrome.tabs.executeScript(null,
{code:"document.body.style[background-image]=\"url('ffrontier.jpg')\""});
window.close();
}
需要注意的事项:document.body.style.background-image
会抛出错误,因为您无法在变量名中使用-
符号。您必须改为使用对象语法:
document.body.style[background-image]