JavaScript中是否存在类似于@importCSS的内容,允许您在另一个JavaScript文件中包含JavaScript文件?
我有以下元素:
<script type="text/javascript" src="https://cdn.example.com/js_file.js"></script>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,该站点是HTTPS,但该站点也可能只是HTTP.(JS文件在另一个域上.)我想知道为方便起见,执行以下操作是否有效:
<script type="text/javascript" src="//cdn.example.com/js_file.js"></script>
Run Code Online (Sandbox Code Playgroud)
我想知道是否有效删除http:或https:?
它似乎适用于我测试过的所有地方,但是有什么情况下它不起作用吗?
我正在使用以下javascript的CDN:
对于每一个,如何在可能被阻止/不可用的实例中恢复使用本地副本?
以下代码的目的是什么?
请注意,在下面的第二个脚本代码之前,jquery.min.js已经包含在内googleapis.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="/assets/js/vendor/jquery.min.js"><\/script>')</script>
Run Code Online (Sandbox Code Playgroud) 我们目前正在从谷歌CDN中提取jQuery和jQueryUI(以及jQueryUI CSS)库.我喜欢这个,因为我可以调用google.load("jquery", "1");
,最新的jQuery 1.xx将被使用.
现在我因为安全性而在本地拉出库.
我很乐意将它们拉到当地,但我想知道还有哪些其他好处和缺陷值得注意?
是否可以.js同步调用文件然后立即使用它?
<script type="text/javascript">
var head = document.getElementsByTagName('head').item(0);
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', 'http://mysite/my.js');
head.appendChild(script);
myFunction(); // Fails because it hasn't loaded from my.js yet.
window.onload = function() {
// Works most of the time but not all of the time.
// Especially if my.js injects another script that contains myFunction().
myFunction();
};
</script>
Run Code Online (Sandbox Code Playgroud)
这是简化的.在我的实现中,createElement的东西在一个函数中.我想在函数中添加一些东西,可以在返回控件之前检查某个变量是否被实例化.但是,当我从另一个我无法控制的网站中包含js时,仍然存在一个问题.
思考?
编辑:
我现在已经接受了最好的答案,因为它为正在发生的事情提供了一个很好的解释.但如果有人对如何改进这一点有任何建议我会向他们开放.这是我想做的一个例子.
// Include() is a custom function to import js.
Include('my1.js');
Include('my2.js');
myFunc1('blarg');
myFunc2('bleet');
Run Code Online (Sandbox Code Playgroud)
我只是想从不必知道的内部太多,只能够说,保持"我希望用这个模块,现在我会使用一些代码吧."
在我学会使用的教程中document.write.现在我明白很多人对此不以为然.我试过了print(),但它确实将它发送到打印机.
那么我应该使用哪些替代品,为什么我不应该使用document.write?w3schools和MDN都使用document.write.
我正在创建一个jquery插件,我想验证外部脚本是否已加载.这是一个内部Web应用程序,我可以保持脚本名称/位置一致(mysscript.js).这也是一个可以在页面上多次调用的ajaxy插件.
如果我可以验证脚本未加载,我将使用以下命令加载它:
jQuery.getScript()
Run Code Online (Sandbox Code Playgroud)
如何验证脚本是否已加载,因为我不希望多次在页面上加载相同的脚本?这是否因为缓存脚本而无需担心?
更新: 我可能无法控制谁在我们的组织中使用此插件,并且可能无法强制该脚本不在具有或不具有特定ID的页面上,但脚本名称将始终位于同一位置同名.我希望我可以使用脚本的名称来验证它实际上已加载.