Js/jQuery include function not working in IE
我有以下代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | function includeJSLib(lib, id, callback) { if (!document.getElementById(id)) { var s = document.createElement('script'); s.setAttribute('id', id); s.setAttribute('async', 'false'); s.setAttribute('type', 'text/javascript'); s.src = lib; document.getElementsByTagName('head')[0].appendChild(s); s.onload = callback; } else { callback(); } } includeJSLib('https://code.jquery.com/jquery-1.11.3.min.js', 'jqueryInclude', function(){ jQuery(document).ready( function($) { if ($('body').hasClass('class')) { do something } }); }); |
它将加载jquery。在回调函数中有一些自定义代码。自定义代码在Firefox和Chrome中可以正常工作,但在IE中不行。
Internet Explorer完全忽略代码段。在IE 10/11中测试。
有人知道问题可能是什么吗?
谢谢和问候,诺克斯
另外,IE调试器什么也没说,它只是跳过代码片段。我必须以这种方式包括jquery(最好不要问:p)
对于ie而不是
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | function includeJSLib(lib, id, callback) { if (!document.getElementById(id)) { var s = document.createElement('script'); s.setAttribute('id', id); s.setAttribute('async', 'false'); s.setAttribute('type', 'text/javascript'); s.src = lib; document.getElementsByTagName('head')[0].appendChild(s); var loaded = false; s.onload = s.onreadystatechange = function() { var readyState = this.readyState || 'complete'; if (!loaded && ('loaded' === readyState || 'complete' === readyState)) { loaded = true; // Handle memory leak in IE s.onload = s.onreadystatechange = null; s.parentNode.removeChild(s); callback(); } }; // s.onload = callback; } else { callback(); } } includeJSLib('https://code.jquery.com/jquery-1.11.3.min.js', 'jqueryInclude', function() { jQuery(document).ready( function($) { if ($('body').hasClass('class')) { do something } }); }); |