2012-07-10 66 views
1

我是一个初学者,尝试我的第一个程序,在脚本标记的scr属性中添加外部jscript文件,然后按照我搜索的所有步骤进行操作,但它没有按照应有的方式工作。有人可以帮助我吗?即使在引用后也无法访问外部Jscript文件?

  1. 我有一个aspx窗体,以及一个onclick调用内部javascript函数的按钮。 我也有一个按钮onclick调用外部.js文件的功能。

这是我的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

我的javascript功能在aspx页面中工作正常。但外部不是。它给了我Microsoft JScript运行时错误:对象预期。 – 2012-07-10 14:59:11

回答

1

您的外部JavaScript文件中的功能未正确定义。

它应该看起来像这样(我加了function关键字)。

function ExternalJSFileFunction() 
{ 
    alert("I m from external file"); 
} 

您还需要进行丹威尔曼在他的回答中提出的更改。

+0

thnx alex: )我得到了 – 2012-07-11 11:44:54

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的doctype,你也可以得到的<script>元素去掉类型属性的太

也有在同一行的功能或使用条件你开大括号,所以做:

function ExternalJSFileFunction() { 

但不是:

function ExternalJSFileFunction() 
{ 

你应该总是在结束</body>标签性能

使用onclick属性前添加脚本到页面的结束,也没有推荐的方式附加事件处理程序时,应该使用适当的addEventListener()方法。如果您需要支持< = IE8,则需要使用IE的旧版事件API。使用JS库。像jQuery,可以真正帮助这种东西。

+0

Thinks .. danwellman我做了你的评论,但仍然得到相同的错误:( – 2012-07-10 15:27:10

+0

嘿非常感谢:))danwellman,帮助我解决了这个错误。我给你提供了一些技巧。我使用XHTML 1.0,这是我猜测高于HTML5,它会给出警告,如果我不写类型属性。 – 2012-07-11 11:35:15

+0

2.大括号,你会在下文中。代码标记是它提高了我检查的性能。 – 2012-07-11 11:43:35

相关问题