iframe中的jQuery无法在IE中运行

时间:2013-06-30 07:02:02

标签: jquery internet-explorer iframe

我有一个包含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代码,包含相对路径和绝对路径,但没有运气。如果有人知道这方面的任何变通办法或者是什么导致IE不能读取jQuery,我将不胜感激。

提前致谢!

4 个答案:

答案 0 :(得分:5)

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

更新

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

答案 1 :(得分:4)

来自另一个SO问题:

  

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

Source

就我而言,使用......

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

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

答案 2 :(得分:3)

可能你已经用其他方式解决了这个问题,但万一其他人也发现了这个帖子。

这是一个可能在某些情况下有用的小“技巧” 在使用jQuery之前在iframe中添加这个:

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

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

答案 3 :(得分:3)

正如hotate17在评论中指出的那样,实际的答案是他/她正在从CDN加载jQuery资产,在这种情况下是谷歌的CDN。加载来自同一服务器的jQuery资产,因此与iFrame源相同的URL修复了他的问题,我也是,我感谢hotate17!

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