Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从<;调用javascript函数;脚本>;标签? //一些大函数() //基于前面的代码动态加载脚本 文件。填写(“”);_Javascript_Html - Fatal编程技术网

如何从<;调用javascript函数;脚本>;标签? //一些大函数() //基于前面的代码动态加载脚本 文件。填写(“”);

如何从<;调用javascript函数;脚本>;标签? //一些大函数() //基于前面的代码动态加载脚本 文件。填写(“”);,javascript,html,Javascript,Html,问题:是否可以将largeFunction()移出静态html页面并将其放入js文件中?如果是,那么在编写标记之前,我如何静态调用该函数?而不详细介绍javascript模块等,我将介绍最简单的方法,让您继续前进,并让您根据需要进行优化。假设您将largeFunction()放入一个名为myScript.js的单独文件中,那么您的HTML页面设置如下所示: <html> <script> //some largeFunction() //load a

问题:是否可以将
largeFunction()
移出静态
html
页面并将其放入
js
文件中?如果是,那么在编写
标记之前,我如何静态调用该函数?

而不详细介绍javascript模块等,我将介绍最简单的方法,让您继续前进,并让您根据需要进行优化。假设您将
largeFunction()
放入一个名为myScript.js的单独文件中,那么您的HTML页面设置如下所示:

<html>
 <script>
    //some largeFunction()

    //load a script dynamically based on the previous code
    document.write("<script src='//...'><\/script>");
 </script>
</html>

大函数();
//基于前面的代码动态加载脚本
文件。填写(“”);
如您所见,您真正需要做的就是确保在当前脚本标记之前引用外部脚本文件。从那里,您可以调用
largeFunction()
,就像它嵌入到HTML中一样。

简短回答:是

只要先加载包含函数的第一个脚本,就可以在任何地方调用函数,只要先加载

<html>
 <script type="text/javascript" src="myScript.js"></script>
 <script>
    largeFunction();

    //load a script dynamically based on the previous code
    document.write("<script src='//...'><\/script>");
 </script>
</html>

只需确保您的第一个脚本包含该函数。

您可以尝试以下选项:


LargeFunction.js
function largeFunction(){
//这是一个全局函数,是window对象的一部分。
//一旦加载文件,就可以从任何地方调用它。
}
index.html

大函数();

生活 这些函数在加载文件时仅执行一次。它们一经编译即被调用

function largeFunction(){
}
(功能(){
大函数();
})()

你甚至可以尝试不用生活

<script src="file1.js" type="text/javascript"></script> 
<script>
    largeFunction();
</script>

window.onload/$(document.ready()) 渲染所有元素后将触发此事件。如果JS正在操作任何元素,如管理UI状态或创建控件,如
日期选择器
可搜索下拉列表
添加选项以选择
,则首选这些事件

注意:两个事件不相同。你可以参考下面的帖子

//纯JS
函数largeFunction(){
}
window.onload=函数(){
大函数();
}
//jQuery
函数largeFunction(){
}
$(文档).ready(函数(){
大函数();
})

注意:功能大不是一个好的做法。您还应该尝试将函数拆分为多个函数

函数getData(回调){ 变量数据=。。。 //从服务器获取数据 数据=清洁数据(数据); 数据=过程数据(数据); if(callback)callback(data);//callback指的是renderUI函数 } 函数cleanData(数据){ //如果任何字段需要格式化,请清除 返回数据; } 函数processData(数据){ //您可以排列逻辑来解析数据 返回数据; } 函数(数据){ //使用数据更新DOM元素 } 函数largeFunction(){ getData(renderUI); }
如果在JavaScript中获取DOM元素并添加事件处理程序,则不必将函数放在HTML页面上。您可以创建JS文件并使用脚本标记链接到它。最好将脚本标记放在页面底部,以确保所有DOM都已加载

例如:

function largeFunction(){
  
}
largeFunction();
在页面底部附近的HTML中

var getDomJquery = $("#got-Some-dom").on( "click", function(){
    // do some cool JS DOM stuff here
});


var getDomPureJs = document.getElementById("got-Some-dom").on( "click", function(){
    // do some cool JS DOM stuff here
});


是。你可以。您可以将整个函数移动到不同的文件中。然后加载这个文件。关于调用函数,您可以在此文件后使用另一个脚本标记来调用它。您还可以查看
iLife
window.onload
。这些也可以在该文件中。只需要将加载js文件的脚本标记放在创建新脚本标记的脚本标记之前。您尝试过吗?对我来说,似乎可以使它从单独的文件工作。它无论如何都可以访问文档objectNote!如果此脚本处理DOM元素,请确保在整个HTML之后加载此文件。或者使用window.onload来确保要操作的元素被渲染。这是可选的/延迟的加载要求吗?但是我想在渲染完成之前初始化这些内容。我是否可以在加载期间执行
myJsFile.js
中的函数,而不直接触发该函数?是的。你可以做document.load(这里是你的代码),谢谢你解释生活!是否可以对变量执行相同的操作,即加载一个js文件,然后在另一个脚本标记中引用该文件中的变量?@User肯定是的
var getDomJquery = $("#got-Some-dom").on( "click", function(){
    // do some cool JS DOM stuff here
});


var getDomPureJs = document.getElementById("got-Some-dom").on( "click", function(){
    // do some cool JS DOM stuff here
});
<script src="myJsFile.js"></script>