0

我正在学习如何编写chrome扩展,我发现了一个例子,使用browseaction它可以改变网页的背景颜色,我试图做一些非常相似的事情,改变背景图像,但由于某种原因......它不工作,js的功能是:使用BrowserAction设置背景图像

function click(e) { 
    chrome.tabs.executeScript(null, 
     {code:"document.body.style.background=url('ffrontier.jpg')"}); 
    window.close(); 
} 

我敢肯定这是一些关于我的sintax,但我不能弄清楚,任何人可以帮助我吗?感谢一下

回答

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] 
+0

感谢您的帮助,但仍然无法正常工作 – xiidarkevil

+0

请确保图片网址也有效。 –

+0

已经选中,这是图像的名称.....它不是关于“”的东西? – xiidarkevil

1

UPDATE:只有外部URL像URL(http://www.stackoverflow.com)工作,而不是本地文件。抱歉。 我只是删除了url()中的引号,它对我有用!

function click(e) { 
    chrome.tabs.executeScript(null, 
     {code:"document.body.style.backgroundImage = 'url(ffrontier.jpg)'"}); 
} 
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(); 
}