2013-03-17 35 views
1

我目前正在開發一個將樣式表和一些小腳本添加到網站的Safari擴展。其中一個腳本已在HTML中插入,所以我已經運行的另一個腳本...Safari擴展中的多餘文件

var myScriptElement = document.createElement('script'); 
myScriptElement.type = 'text/javascript'; 
myScriptElement.src = 'http://mysite.com/myscript.js'; 
document.querySelector('head').appendChild(myScriptElement); 

...,增加了這頭:

<script type="text/javascript" src="http://mysite.com/myscript.js"></script> 

我的問題是腳本從我的站點而不是擴展文件夾加載。那麼,我必須插入什麼作爲源來訪問擴展文件夾? 我無法使用標準的開始和結束腳本擴展功能插入腳本。

我對javascripting非常不滿,所以如果有人能幫助我,我將不勝感激! :)

回答

2

您可以使用safari.extension.baseURI獲取擴展文件夾的路徑。因此,使用這樣的事情在你的注入腳本:

var myScriptElement = document.createElement('script'); 
myScriptElement.type = 'text/javascript'; 
myScriptElement.src = safari.extension.baseURI+'myscript.js'; 
document.querySelector('head').appendChild(myScriptElement); 

值得一提的是,注入腳本注入到每個頁面上的IFRAME太多,所以這取決於你在做什麼,你可能想確保上面是隻運行if (window == window.top)