2016-09-20 64 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

相关问题