我正在尝试按顺序加载一组脚本,但是onload事件对我没有触发。
var scripts = [
'//cdnjs.cloudflare.com/ajax/libs/less.js/1.3.3/less.min.js',
'//cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.0.0-rc.3/handlebars.min.js',
MK.host+'/templates/templates.js'
];
function loadScripts(scripts){
var script = scripts.shift();
var el = document.createElement('script');
el.src = script;
el.onload = function(script){
console.log(script + ' loaded!');
if (scripts.length) {
loadScripts(scripts);
}
else {
console.log('run app');
MK.init();
}
};
$body.append(el);
}
loadScripts(scripts);
我猜想当使用jQuery将元素添加到DOM时,不会触发诸如el.onload之类的本地事件。如果我使用本机,document.body.appendChild(el)
则可以正常启动。
您应该在事件f.ex 之后* 设置src
属性: *onload
el.onload = function() { //...
el.src = script;
您还应该 在 附加onload
事件 之前 将脚本附加到DOM :
$body.append(el);
el.onload = function() { //...
el.src = script;
请记住,您需要检查readystate
IE支持。如果您使用的是jQuery,则还可以尝试以下getScript()
方法:http
:
//api.jquery.com/jQuery.getScript/
问题内容: 使用angular.js给出以下代码 此处的Plunkr:http://plnkr.co/edit/i4MAzs HTML: Javascript: 当您点击“ Value2”标签时,click事件将触发两次。仅当ng-click附加到标签时才会发生这种情况。将其附加到输入元素后,所有内容都会按预期工作。 有人可以解释发生了什么吗? 问题答案: 另外,我还编辑了您的plnkr以显示事件
问题内容: 我使用以下代码段使用ajax远程添加新的select2标签,并且我想在新标签/删除标签事件中注册或删除多对多表中的某些记录 桌子看起来像 我的Javascript 在返回的json中,我也有一个产品ID,并且我正在寻找一种在select2事件上触发新ajax的方法,但是我不知道应该在哪里保存或删除表中的数据。 做一些研究后,我已经能够构建一个功能,该功能可以更新上表中的记录,并且可以正
问题内容: 我正在处理用户脚本,但我发现当主页发出AJAX请求时,该脚本未运行。 有什么方法可以在主页加载和AJAX请求上触发用户脚本? 问题答案: 在AJAX请求上重新运行脚本代码的明智方法是,专注于页面的关键部分并检查更改。 例如,假设页面包含如下所示的HTML: 并且您希望脚本对每个注释进行处理。 现在,您 可以 拦截所有AJAX调用, 或者侦听 (不建议使用)或使用s,但是这些方法可能会变
我需要自动化web分析,为此,我需要从java代码触发“谷歌标签管理器”GTM脚本。例如。 用户转到https://www.etsy.com/ 用户查找DataLayer的GTM脚本 null
问题内容: 我熟悉的典型用法,如下所示: 触发载入事件的所有html元素是什么?(因此执行onload属性中提供的javascript) 例如,一个这样的标记将在加载后执行属性中提供的javascript : 问题答案: 以下HTML标记支持“ onload”: 以及以下Javascript对象:
问题内容: 我想在Angularjs控制器中触发JS代码。 我有这个: 当我离开使用该控制器的页面时,此方法工作正常,但当我关闭标签/浏览器时,该方法不起作用。 标签/浏览器关闭时是否需要使用其他代码来触发JS代码? 问题答案: 从角度文档: $ destroy(); 从父范围中删除当前范围(及其所有子级)。删除意味着对$ digest()的调用将不再传播到当前作用域及其子级。删除还意味着当前范围