javascript - 嵌入式 JavaScript 无法在 IE 10 或 11 中运行(在 Chrome 和 Firefox 中运行良好)

标签 javascript jquery html internet-explorer

我正在尝试构建一个简单的网页,根据用户点击“链接”,将

的内容替换为新内容

下面的代码完全符合我在 Chrome 和 Firefox 中的预期,但在 IE 10 或 11 中什么都不做(除了将链接变为访问的颜色):

<!DOCTYPE html>

<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
    <script>
        $(document).ready(function(){
             $("#activities").click(function(){
                 $("#body").load("test02.html");
             });
        });
    </script>
</head>
<body>
    <div id="header">
        <a href="#" id="activities">Activities</a>
        <!-- this stays the same -->
    </div>
    <div id="body">
        <p>this is the content that arrives without needing prompting</p> 
        <!-- All content will be loaded here dynamically -->

    </div>
    <div id="footer">
        <!-- this stays the same -->
    </div>
</body>
</html>

这是“test02.html”的内容:

<p>---</p>
<p>Hello world!</p>
<p>---</p>

我检查了 IE 中的 javascript 安全设置,一切都设置为“启用”。我还尝试将 type="text/javascript"添加到脚本标签中。

一些谷歌搜索表明可能需要重新安装 IE,我已经尝试过了。

有人知道如何让它在 IE 中工作吗?

最佳答案

问题是 IE 在“兼容”模式下崩溃了。在这种情况下,它破坏自身的方式是未能正确查找您的div id="body" 元素。我认为这是我的观察错误,我认为真正的问题是 addEventListener(因为 jQuery 2.x 不再回退到 attachEvent,因为它不支持 IE8 和更早版本 [或“兼容性”像它们一样工作的模式]):

enter image description here

我可以重现这个问题。如果我通过将此添加到 head 元素的顶部来告诉 IE 不要破坏自身(例如,不要使用兼容模式),问题就会消失:

<meta http-equiv="X-UA-Compatible" content="IE=Edge" />

IE 对 Intranet 站点的默认设置是以“兼容”模式显示它们。

有一次我完全不确定在“兼容”模式下它是否会混淆 id “body” 的元素。 IE 有被这样的事情弄糊涂的历史。所以你也可以考虑 the-body 或类似的东西,但我测试过,似乎不需要它。


旁注:您可能还想将 return falsee.preventDefault() 添加到您的点击处理程序,因此它不遵循 # 链接(它将滚动回页面顶部并将 # 添加到地址栏)。

关于javascript - 嵌入式 JavaScript 无法在 IE 10 或 11 中运行(在 Chrome 和 Firefox 中运行良好),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34682246/

相关文章:

Javascript:循环仅打印最后一个值

javascript - 在已经隐藏的 div 上切换隐藏?

javascript - 如何找到 Canvas 中有多少个单位?

javascript - 隐藏基于当前日期的下拉选项

javascript - 转换宽度为负值的条形图

javascript根据星期几更改元素类

javascript - 当用户输入正确的文本时,图像会翻转/更改

javascript - each() 函数中 jqueryeach() 函数的返回值和作用域

Javascript 方法链

javascript - 为什么我的文本字段没有添加到页面中?