문제

I'm a beginner trying my first program to add external jscript file in scr attribute of script tag, followed all steps as I searched but it's not working the way it should. Can someone please help me with this?

  1. I have one aspx form, and one button onclick calling internal javascript function. I also have one button onclick calling external .js file function.

This is my aspx code

<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>

And this is my .js code

ExternalJSFileFunction()
{
    alert("I m from external file");
}
도움이 되었습니까?

해결책

The function in your external JavaScript file is not defined properly.

It should look like this (I added the function keyword).

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

You also need to make the changes that danwellman suggested in his answer.

다른 팁

There should not be code in between the script tags of an external script. Try changing it to:

<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>

Also, the Language attribute is deprecated and is not needed

Edit

It's because the function you are trying to call isn't actually a function because the function keyword is not used. Change the external file so that it is:

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

Then it will work

Additionally, there are some other tips as well:

If you're using the HTML5 doctype, you can also get rid of the type attribute on <script> elements too

Also have your opening curly braces on the same line as the function or conditional, so do:

function ExternalJSFileFunction() {

but not:

function ExternalJSFileFunction()
{

You should almost always add your scripts to the end of the page, just before the closing </body> tag for performance

Using the onclick attribute is also not the recommended way of attaching event handlers, you should use the proper addEventListener() method instead. If you need to support <= IE8 you'll need to use IE's older event API. Using a JS library. like jQuery, can really help out with this kind of stuff.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top