即使在引用后也无法访问外部Jscript文件?

时间:2012-07-10 14:57:39

标签: javascript asp.net jscript.net

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

  1. 我有一个aspx表单,一个按钮点击调用内部javascript函数。 我也有一个按钮onclick调用外部.js文件功能。
  2. 这是我的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");
    }
    

2 个答案:

答案 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在答案中建议的更改。