是否可以使用单个javascript标记来加载外部js文件并调用其函数
Is it possible to use a single javascript tag for loading an external js file and calling its function?
我正在编写一个第三方javascript(my.js),它可以使用script标记插入HTML页面。我想实现以下目标:
- my.js被加载(它有一个函数myFunc(params))
- 使用适当的params调用myFunc()(参数可以更改)
- 将my.js脚本放在头上不是一个选项
我能使用的最佳方法是什么?
问题是,你不能真正通过一个指向外部文件的脚本标记来传递参数,所以你必须从DOM中的某个元素获取它们:
html:
<html>
<body>
<script src="my.js"></script>
<input id="params" type="hidden" value="'param1', 'param2', 'param3'" />
<div id="result"></div>
</body>
</html>
javascript:
function myfunc() {
var doc = document,
params = doc.getElementById("params").value.split(","); // make an array of params
doc.getElementById("result").innerHTML = params.toString();
}
window.onload = myfunc;
不过,老实说,这是一个拼凑。正如Felix之前提到的,您可能只需要使用两个脚本标记——一个用于获取外部js文件,另一个用于使用所需参数调用函数。
您可以通过查询字符串传入参数并动态解析它们。
例如,您的脚本标记变为:<script src="my.js?foo=bar"></script>
然后,您可以使用获取URL的值
var scripts = document.getElementsByTagName('script');
var url = scripts[ scripts.length - 1 ].getAttribute('src');
由于浏览器加载JS的顺序,页面上的最后一个脚本(当您的脚本在加载过程中执行时)应该始终是您的脚本。
然后解析查询字符串。关于Stack Overflow,有很多问题需要解决。例如:分析JavaScript 中的查询字符串
相关文章:
- 从文本文件js中读取列表
- 当我用ctrl+p搜索时,为什么要在谷歌chrome上使用inspect来调试缺少显示文件js
- 获取用于外部JavaScript文件(.js)的代码提示
- 如何将Javascript文件(.js文件)放在web服务器中
- 如何将 JavaScript 文件(.js 文件)添加到 C# 项目并从 C# 代码调用 JavaScript 方法
- 在 Node 中包含 javascript 文件.js无需 require('.') ing
- 如何使用jquery显示多个文件.多文件.js
- 使用 PDF 打开 PDF 文件.js而不将文件作为查询字符串传递
- 转换颜色十六进制值以用于三个 JSON 文件.js
- 如何使用 jQuery 选择多个文件.多文件.js插件?使用单个关闭按钮一次选择多个文件
- 如何在 Gulp 任务中间添加 CSS 文件.js
- 如何从Dropzone上传和删除文件.js
- 如何在视频中添加视频文件.js 4.2.1.
- 从快速节点下载文件.js具有 JWT 授权
- 访问 JavaScript 文件.js中的 C# 变量
- 在节点中热重载外部 js 文件.js如果文件有任何更改
- 如何在一台服务器中运行不同的.js文件.js NODE JS中的文件
- 如何在多文件.js中上传文件时检查文件扩展名
- 将文件.js中的var导入到模块joomla的模板中,并使用后台进行修改
- 在path项目中编写文件js脚本