2013-04-23 64 views
2

我正在開發一個應用程序,其中一個小部件具有一個按鈕,通過啓動API啓動另外兩個按鈕。該API完美工作,但我無法讓調用函數正常工作。當我剛剛宣佈API時,使用:如何在點擊到另一個元素時插入新的腳本元素

<script src="js/global.js"></script> 

它工作正常,但在頁面打開後立即啓動。我需要它啓動按鈕點擊代替。

我有以下代碼:

<a href='' id='mylink'>click me</a> 

<script type="text/javascript"> 
var myLink = document.getElementById('mylink'); 
myLink.onclick = function(){ 
var script = document.createElement("script"); 
script.type = "text/javascript"; 
script.src = "js/global.js."; 
return false; 
alert('ping'); 
} 

我設置的警報,看看那裏的過程中停止工作。 「返回」之前的一切似乎都在運行。我已經試過這兩個返回true和返回false,並沒有區別。

+1

這不是正確的做法。除此之外,您應該更改「global.js」中的代碼,以便將要採取的操作封裝在要從「click」事件處理程序調用的函數中。 – Pointy 2013-04-23 17:55:58

回答

3

你需要插入腳本,試圖將其追加到頭上:

document.getElementsByTagName('head')[0].appendChild(script); 

所以,你可以做這樣的事情:

<script type="text/javascript"> 
var myLink = document.getElementById('mylink'); 

myLink.onclick = function(){ 
    var script = document.createElement("script"); 
    script.type = "text/javascript"; 
    script.src = "js/global.js."; 
    document.getElementsByTagName('head')[0].appendChild(script); 
} 

</script> 

另外在HTML嘗試使用除了錨之外,別的東西都會嘗試向您發送一些其他內容,下一個代碼看起來像是一個錨點,但是是一個跨度:

<span style="cursor:pointer; text-decoration:underline" id='mylink'>click me</span> 
+0

就跨度而言,我決定使用帶有按鈕的窗體來代替。我認爲這對於事件會更加可行。 我剛剛複製了我試圖運行的功能,並使其參與onclick。 – Nicholas 2013-04-23 19:57:37

+0

不錯,請確保將onsubmit =「return false」添加到您的表單:) – multimediaxp 2013-04-23 20:45:32

2

return終止函數的執行。

您沒有將script元素添加到文檔中。

document.body.appendChild(script); 
相關問題