2011-09-02 147 views
0

我試圖執行鏈接(<a>)的onclick()事件,但它不會將訪問者帶到任何地方,它會執行JavaScript代碼。但是,考慮到內容腳本無法訪問它們運行的​​網頁上的腳本,我該如何執行代碼?應該執行的代碼使用在網頁中聲明的自定義函數。從內容腳本訪問網頁腳本

+0

爲什麼你不能把你需要在外部文件訪問的JavaScript? – Remi

+0

這不是我的網頁,我不喜歡在我的文件中攜帶這樣的代碼。 – Bogdacutu

回答

0

約(使用jQuery)什麼:

假設腳本的網頁內包含了函數「MYFUNC」要能夠執行。

var script = $("#webscript");(或任何其他方式來獲得包含代碼的腳本標籤)

var myfunc = null; // declare the function-name (perhaps even not necessary) 
eval(script.html()); // where myfunc is declared and assigned to your myfunc variable 

現在嘗試使用功能:

myfunc(); 

EDIT2: 你可能還'insert' the code again

var copyScript = document.createElement('script'); 
copyScript.type = 'text/javascript'; 
copyScript.text = script.html(); 
document.head.appendChild(copyScript); 
+0

我已經試着用'onclick'中的代碼來做'eval()':它不會工作,因爲沒有聲明所需的函數。 – Bogdacutu

+0

這就是爲什麼你需要聲明它,使用包含實際代碼複製爲文本使用.html() – Remi

+0

的字符串文字哦,似乎我誤解了它。但是,如果頁面是動態的,我怎麼能聲明代碼?它應該可以在任何頁面上工作,而不需要在我身邊修改。 – Bogdacutu