如何链接外部javascript文件onclick按钮

ver*_*ure 32 javascript

javascript文件位于Public/Scripts/filename.js中.我在template/form.tmpl.html中有一个模板文件.根文件夹包含公共和模板文件夹

我想在form.tmpl.htm中调用点击按钮的javascript文件.

  <button type="button" value="Submit" onClick="Call the external js file" >
Run Code Online (Sandbox Code Playgroud)

谢谢

Mik*_*Sav 41

我必须同意上面的评论,你不能调用文件,但你可以加载这样的JS文件,我不确定它是否回答你的问题,但它可能有帮助...哦,我已经使用过在我的示例中,链接而不是按钮...

<a href='linkhref.html' id='mylink'>click me</a>

<script type="text/javascript">

var myLink = document.getElementById('mylink');

myLink.onclick = function(){

    var script = document.createElement("script");
    script.type = "text/javascript";
    script.src = "Public/Scripts/filename.js."; 
    document.getElementsByTagName("head")[0].appendChild(script);
    return false;

}


</script>
Run Code Online (Sandbox Code Playgroud)

  • 你在哪里调用js文件中的函数? (2认同)
  • 哪里?你的意思是怎么样?如果加载了脚本,您可以正常调用加载脚本中的函数.也许你想问另一个问题? (2认同)

Fry*_*son 28

如果您希望按钮调用您在filename.js中编写的例程,则必须编辑filename.js,以便您要运行的代码是函数体.因为您可以调用函数,而不是源文件.(源文件没有入口点)

如果您的filename.js的当前内容是:

你必须改为:

function functionName(){
	alert('Hello world');
}
Run Code Online (Sandbox Code Playgroud)

然后你必须在你的html页面的标题中加载 filename.js:

<head>
	<script type="text/javascript" src="Public/Scripts/filename.js"></script>
</head>
Run Code Online (Sandbox Code Playgroud)

这样你就可以通过按钮调用 filename.js中包含的函数:

<button onclick="functionName()">Call the function</button>
Run Code Online (Sandbox Code Playgroud)

我做了一个小例子.一个简单的HTML页面要求用户输入她的名字,当她点击按钮时,调用Public/Scripts/filename.js中的函数将插入的字符串作为参数传递,以便弹出窗口显示"Hello,<insertedName>! ".

这是调用HTML页面:

<html>

	<head>
		<script type="text/javascript" src="Public/Scripts/filename.js"></script>
	</head>

	<body>
		What's your name? <input  id="insertedName" />
		<button onclick="functionName(insertedName.value)">Say hello</button>
	</body>

</html>
Run Code Online (Sandbox Code Playgroud)

这是Public/Scripts/filename.js

function functionName( s ){
	alert('Hello, ' + s + '!');
}
Run Code Online (Sandbox Code Playgroud)

  • 抱歉,我认为这很令人困惑。代码没有按预期运行,当有多个文件时使用 https://jsfiddle.net/ 或其他东西。此外,我相信它没有回答答案。 (3认同)
  • 这对我有帮助.我可以在将它加载到体内之后调用该函数,因此它不必在头部加载. (2认同)

par*_*nos 6

这是完全有可能的,我根据 Mike Sav 的例子做了类似的事情。那是 html 页面,应该是同一文件夹中的外部 test.js 文件

示例.html:

<html>
<button type="button" value="Submit" onclick="myclick()" >
Click here~!
<div id='mylink'></div>
</button>
<script type="text/javascript">
function myclick(){
    var myLink = document.getElementById('mylink');
    myLink.onclick = function(){
            var script = document.createElement("script");
            script.type = "text/javascript";
            script.src = "./test.js"; 
            document.getElementsByTagName("head")[0].appendChild(script);
            return false;
    }
    document.getElementById('mylink').click();
}
</script>
</html>
Run Code Online (Sandbox Code Playgroud)

测试.js:

alert('hello world')
Run Code Online (Sandbox Code Playgroud)


小智 6

通过.js首先加载文件,然后通过onclick调用函数,可以减少代码编写,并且很清楚正在发生的事情。我们将其称为JS文件zipcodehelp.js

HTML:

<!DOCTYPE html>
<html>
<head>
    <title>Button to call JS function.</title>
</head>
<body>
    <h1>Use Button to execute function in '.js' file.</h1>
    <script type="text/javascript" src="zipcodehelp.js"></script>
    <button onclick="ZipcodeHelp();">Get Zip Help!</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

的内容zipcodehelp.js是:

function ZipcodeHelp() {
  alert("If Zipcode is missing in list at left, do: \n\n\
    1. Enter any zipcode and click Create Client. \n\
    2. Goto Zipcodes and create new zip code. \n\
    3. Edit this new client from the client list.\n\
    4. Select the new zipcode." );
}
Run Code Online (Sandbox Code Playgroud)

希望有帮助!干杯!

–肯