2016-09-20 62 views
0

該代碼在頁面加載後立即運行。 onclick事件完全被javascript忽略。什麼是一個簡單的解決方法,因爲像youtube當你播放視頻document.title更新與揚聲器。我想學習使用外部JavaScript來做到這一點,因爲我可以在html中使用內部JavaScript。如何使用外部Javascript使用onclick事件來更改document.title?

<!DOCTYPE html> 
    <html> 
    <head> 
    <title> Animation </title> 
    <meta charset="UTF-8"> 
    <link rel="stylesheet" type="text/css" href="animationcss.css"> 
    </head> 
    <body> 

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



<input id="changeButton" type="button" value="Change" ></input> 

/外部JavaScript/

 var element = document.getElementById("changeButton"); 
     element.onclick = textChange("changetothis"); 

     function textChange(text){ 
     document.title = text; 

}

+2

你調用該函數,而不是引用它,它應該是'element.onclick = textChange;'然後你找出另一種方式來傳遞adeneo的評論文字 – adeneo

+1

澄清:當您使用( )在函數名後面,它會調用oke函數。當您在賦值運算符的右側調用函數時,它會將左手側的值賦給被調用的函數的RETURN值。由於你沒有顯式地從你的textChange函數中返回一個值,所以javascript默認返回undefined。因此element.onclick === undefined – mhodges

回答

0

嘗試調用函數的文檔由配售對象下面的腳本標籤或做$(文件)。就緒()函數加載後, 此代碼工作正常我

<!DOCTYPE html> 
    <html> 
    <head> 
    <title> Animation </title> 
    <meta charset="UTF-8"> 
    </head> 
    <body> 
    <input id="changeButton" type="button" value="Change" ></input> 
    <script src="script.js"></script> 
    <body> 
    </html> 

和腳本是

var el = document.getElementById("changeButton"); 
    el.onclick = function(){ 
    textChange("changetothis"); 
    } 

    function textChange(text){ 
    document.title = text; 
    } 
+0

是的,它像一個魅力。我認爲這是因爲我把腳本放在html中。再次感謝你!我也用你的JavaScript。 –

0

您可以使用匿名函數達到你想要的效果,像這樣:

document.getElementById("changeButton").onclick = function() { 
    document.title = newTitle; 
} 

變量'newTitle'應該聲明爲&以上代碼的某處以使其工作。

+0

這就是我改變它:var newTitle =「Change2This」; document.getElementById(「changeButton」)。onclick = function(){ document.title = newTitle; }但它沒有奏效。 –

+0

在您的HTML中,'script'標籤應該移動到'input'標籤的下方,正如我在下面的帖子中指出的那樣。通常,'script'元素應該始終是HTML主體中的最後一個元素。 – Steve

相關問題