我是初学者,尝试我的第一个程序在脚本标记的scr属性中添加外部jscript文件,按照我搜索的所有步骤进行操作,但它没有按照应有的方式工作。有人可以帮帮我吗?
这是我的aspx代码
<head runat="server">
<script type="text/javascript" language="javascript" src="ExternalJScript.js">
function Myfunction()
{
document.getElementById("htmlbutton").innerHTML = "This is Button from Javascript function";
alert("Hi Function Called from Javascript");
}
</script>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<button type="button" id="htmlbutton" onclick="Myfunction()">This is html button</button><br />
<button type="button" id="Button1" onclick="ExternalJSFileFunction()" value="Call File">HI</button>
</div>
</form>
这是我的.js代码
ExternalJSFileFunction()
{
alert("I m from external file");
}
答案 0 :(得分:2)
外部脚本的脚本标记之间不应该有代码。尝试将其更改为:
<head runat="server">
<script type="text/javascript" language="javascript" src="ExternalJScript.js"></script>
<script type="text/javascript">
function Myfunction()
{
document.getElementById("htmlbutton").innerHTML = "This is Button from Javascript function";
alert("Hi Function Called from Javascript");
}
</script>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<button type="button" id="htmlbutton" onclick="Myfunction()">This is html button</button><br />
<button type="button" id="Button1" onclick="ExternalJSFileFunction()" value="Call File">HI</button>
</div>
</form>
此外,语言属性已弃用且不需要
修改强>
这是因为您尝试调用的函数实际上不是函数,因为未使用函数关键字。更改外部文件,使其为:
function ExternalJSFileFunction()
{
alert("I m from external file");
}
然后它会起作用
此外,还有一些其他提示:
如果您使用的是HTML5文档类型,那么您也可以删除<script>
元素上的type属性
也可以在与函数或条件相同的行上打开大括号,所以:
function ExternalJSFileFunction() {
但不是:
function ExternalJSFileFunction()
{
您应该几乎总是将您的脚本添加到页面的末尾,就在结束</body>
性能标记之前
使用onclick
属性也不是附加事件处理程序的推荐方法,您应该使用正确的addEventListener()
方法。如果你需要支持&lt; = IE8,你需要使用IE的旧事件API。使用JS库。像jQuery一样,可以真正帮助解决这类问题。
答案 1 :(得分:1)
外部JavaScript文件中的函数未正确定义。
它应该是这样的(我添加了function
关键字)。
function ExternalJSFileFunction()
{
alert("I m from external file");
}
您还需要进行danwellman在答案中建议的更改。