如何解决是否可以使用单个javascript标记加载外部js文件并调用其功能?
| 我正在编写可以使用脚本标签插入HTML页面的第三方javascript(my.js)。我要实现以下目标: my.js被加载(具有功能myFunc(params)) 使用适当的参数调用myFunc()(参数可以更改) 将my.js脚本放在首位不是一种选择 我可以使用的最佳方法是什么?解决方法
问题是您不能真正通过带有指向外部文件的1个脚本标签的参数来传递参数,因此您必须从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之前提到的,您可能应该只使用2个脚本标签-一个用于获取外部js文件,另一个用于使用所需参数调用函数。
, 您可以通过查询字符串传入参数,然后动态解析它们。
例如,您的脚本标签变为:
<script src=\"my.js?foo=bar\"></script>
然后,您可以使用以下方法获取URL的值:
var scripts = document.getElementsByTagName(\'script\');
var url = scripts[ scripts.length - 1 ].getAttribute(\'src\');
由于浏览器加载JS的顺序,页面上的最后一个脚本(在加载过程中执行脚本时)应该始终是您的脚本。
然后,您解析查询字符串。关于堆栈溢出有很多问题要解决。例如:
解析JavaScript中的查询字符串
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。