6

我有一个包含 jQuery 的 iframe 内容,并且 iframe 中内容的 jQuery 部分在 IE 中不起作用(未使用 jQuery 的部分工作正常,在 Chrome 和 Firefox 中一切正常)。

这是代码:

<!DOCTYPE html>
<html>
<head>
    <title>iframe content</title>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
    <h1>This heading is showing up just fine.</h1>
    <div id="jQuery-generated-content">
           <!-- content dynamically generated by jQuery plugin This part is not showing in iframe in IE -->
    </div>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js">   </script>
    <script src="pathTojQueryPlugin.js"></script>
    <script type="text/javascript">
        jQuery.codeToInitiatePlugin
    </script>

</body>
</html>

我尝试在头部插入 jQuery 代码,就在 body 标记之后,有相对路径和绝对路径,但没有运气。如果有人知道任何解决方法或导致 IE 无法读取 jQuery 的原因,我将不胜感激。

提前致谢!

4

4 回答 4

5

前段时间我也遇到了同样的问题。问题是因为 IE 无法从 iframe 中访问 jquery 库,因此无法读取 jquery 代码。唯一的解决方法是将 jquery 代码转换为 javascript。

更新:

使用不同版本的 jQuery 也可以解决问题。或者也可以使用不同的 jQuery 库。

于 2013-06-30T07:12:09.013 回答
4

从另一个 SO 问题:

这是一个合法的 jQuery 1.10.1 错误:http ://bugs.jquery.com/ticket/13980 。

来源

就我而言,使用...

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>

..解决了问题。它也恰好与父页面的版本相同(感谢 Avigon)。

于 2014-07-22T21:45:35.317 回答
3

可能您已经通过其他方式解决了这个问题,但以防万一其他人也发现了这篇文章。

这是一个小“技巧”​​,在某些情况下可能会有所帮助。
在使用 jQuery 之前在 iframe 中添加:

if (window.jQuery) { 
   jQuery = window.jQuery; 
   $ = window.jQuery; 
}

但是包含 iframe 的页面必须有 jQuery。(最好是相同的版本)

于 2013-10-08T05:49:50.020 回答
3

正如 hotate17 在评论中所说,对此的实际答案是他/她正在从 CDN 加载 jQuery 资产,在本例中是 Google 的 CDN。从同一服务器加载 jQuery 资产,因此与 iFrame 源相同的 URL 解决了他和我的问题,感谢 hotate17!

http://www.sandiegosoftware.net/blog/script5-access-is-denied-error-in-internet-explorer-loading-jquery/

于 2013-10-11T02:57:45.360 回答