我试图通过单击按钮(我已经使用Firebug在网站上包含此代码)在HTML网站上调用JavaScript函数,当我在Notepad ++或任何其他编辑器上运行以下代码时,它可以工作,但是当我将此代码复制到一个网站并单击按钮,它给了我:
错误:: change_value()未定义
我的代码是这样的:
JavaScript :(我已将其复制到网页的标题部分)
<script type="text/javascript">
function change_value() {
alert("Test");
}
</script>
HTML :(我已将其复制到正文部分)
<button onclick="change_value()">Click Here !</button >
我已尝试过只在body部分编写的所有代码同样的错误。
答案 0 :(得分:1)
在已经显示的页面的源代码中添加JS脚本(实际上使用firebug或任何调试器)将不会执行任何操作,因为此标记(<script>
)由浏览器在加载时计算页面。
相反,使用开发工具(控制台)来定义您的功能;它现在应该正常工作。
编辑:
在Chrome中测试过。手动添加Stack Overflow页面顶部的按钮后:
<button onclick="toast()">HELLO</button>
我测试了两件事:
将script
标记直接添加到源代码中:
<script>function toast(){alert("Hello");}</script>
点击按钮不起作用。
现在,使用开发者控制台并定义相同的功能,单击该按钮可正确显示警报。
编辑2:使用开发者控制台来确定我的意思:通常在Firebug中,您应该看到“控制台”面板。如果你想“在运行中”定义一个js函数(当你的页面已经加载时),只需在控制台中输入它的定义;在这种情况下:
function toast(){alert("Hello");}
它在所有浏览器上的工作原理完全相同。
正如Ahmad Bamieh在评论中建议的那样,您还可以从外部JS脚本中添加<script>
标记,例如:
function addScript( src,callback) {
var s = document.createElement( 'script' );
s.setAttribute( 'src', src );
s.onload=callback;
document.body.appendChild( s );
}