2010-02-24 41 views
3

長話短說我正在研究Google Chrome擴展程序。擴展名默認情況下無法訪問他們正在操作的頁面範圍內的變量(您需要通過DOM進行通信)。用Javascript動態插入腳本

我想要做的是在頁面中插入一個腳本;這可以通過定義腳本標記和src屬性很好地工作。

問題是這個腳本需要事先初始化一個變量。爲了初始化這個變量,我試圖用它的代碼內聯構建一個腳本元素(而不是從外部源加載),但是我無法使它工作。

這是可能的,如果是這樣,我如何在腳本中定義源代碼?我試圖將包含JS源文本節點附加到腳本元素,但無濟於事。

+0

退房http://stackoverflow.com/questions/2303147/injecting-js-functions-into-the-page-from-a-greasemonkey-script-on-chrome。 – 2010-02-24 07:14:17

回答

1

它吮吸,但要做到這一點,最好的方法可能是通過將其注入DOM來傳達你的數據:http://code.google.com/chrome/extensions/content_scripts.html#host-page-communication

您還可能能夠通過做這樣的事情來實現:

var script = document.createElement('script'); 
script.type = 'text/javascript'; 
script.text = 'alert("It works!");'; 
document.head.appendChild(script); 

我沒有測試過這個,但我猜測它會從你的內容腳本中工作。

+0

謝謝,這正是我正在嘗試的效果。不知道爲什麼它不工作,我不知道是否因爲我試圖使用appendChild而不是隻設置.text屬性。 – Brad 2010-02-24 13:53:58