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(); 
}