javascript - 无法在 IE8 或 IE9 中加载 jQuery

标签 javascript jquery internet-explorer internet-explorer-8 internet-explorer-9

我有一个运行 js 文件的 header ,该文件可以包含在其他人的网站上,但是在 IE8 和 IE9 中,我得到:

'$' is undefined

在控制台中。

我的代码仅在 IE8 或 IE9 上使用 jQuery,因为跨域问题是通过 jQuery 库中的内置函数解决的。在 WordPress 网站上浏览时,包含的脚本工作正常,但在另一个没有预先加载 jQuery 的网站上,它不起作用,并且我用来在加载 jQuery 代码之前在 header 中包含 jQuery 的代码也不起作用。

var isIE = getInternetExplorerVersion();
if (isIE == 8 || isIE == 9) {

  // Insert jQuery <script> to <head>.
  var head = document.getElementsByTagName( 'head' )[0], script;
  script = document.createElement( 'script' );
  script.type = 'text/javascript';
  script.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js';
  head.insertBefore( script, head.lastChild );

  // Run jQuery test
  $('html').click(function(){
    // Runs without issue on sites that ALREADY have jQuery loaded when IN IE.
    alert('Clicked while in IE');
  });

} else {
   // Runs without issue when not on IE.
   alert('Not in IE');
}

对于那些想知道的人,这是确定 IE 版本的函数(在本例中无关紧要,因为它有效):

function getInternetExplorerVersion() {
    var rv = -1; // Return value assumes failure.
    if (navigator.appName == 'Microsoft Internet Explorer');
    {
        var ua = navigator.userAgent;
        var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");

        if (re.exec(ua) != null) rv = parseFloat( RegExp.$1 );
    }
    return rv;
}

最佳答案

您无需编写自定义代码来检查 IE 版本。 IE 提供了这个“功能”(;

这是 jQuery 2.0 was released 时的解决方案

<!--[if lt IE 9]>
    <script src="jquery-1.9.0.js"></script>
<![endif]-->
<!--[if gte IE 9]><!-->
    <script src="jquery-2.0.0.js"></script>
<!--<![endif]-->

有关 Internet Explorer 条件注释的更多信息 here .

关于javascript - 无法在 IE8 或 IE9 中加载 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25268626/

相关文章:

javascript - 传单:图标标记未出现在 map 的正确位置

javascript - 延迟加载图像的源占位符

php - Facebook 请求 2.0,如何将 "Accept"按钮 url 更改为 facebook 之外的 url?

javascript - 禁用 html 表格最后一行复选框

javascript - 是否可以在 javascript 中测试 IE,而无需浏览器嗅探和条件注释?

显示表格单元格在父级中的 css 绝对位置子高度在 IE 中不起作用

javascript - 导出和导入 ECMA6 类

javascript - 使用 Ajax 验证 x-editable

jquery - 使用 Jquery 检测 Chrome 保存的输入信息?

javascript - IE(所有版本)遵循 href 而不是执行 JS