【问题标题】:jQuery in iframe not working in IEiframe 中的 jQuery 在 IE 中不起作用
【发布时间】:2013-06-27 14:28:09
【问题描述】:

我有一个包含 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 的原因,我将不胜感激。

提前致谢!

【问题讨论】:

  • 如果您正常加载页面而不是在 iframe 中加载,它是否有效?
  • 这是 iframe 的代码吗?
  • 是的,如果我正常加载页面就可以了,而不是iframe的内容。

标签: jquery internet-explorer iframe


【解决方案1】:

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

更新:

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

【讨论】:

  • 包含 jquery 库也无济于事...我已经尝试过了。你也可以试试
  • 感谢您的评论,席德。但在这种特殊情况下,我需要使用 jQuery,因为我需要在 iframe 中使用的 jQuery 插件,因为它具有我需要的确切效果/功能。而且我很难在javascript中编写类似/重新创建功能/效果的东西......
  • 您可以发布您的 jquery 并要求该代码的替代品。也许有人可以帮助你。
  • 您可以做的另一件事是,如果您希望代码保留在 jQuery 中,您可以使用 php 包含函数而不是 iframe。如果这样做,请确保父文档中有 jQuery 库
  • 感谢您的建议。我设法通过以下方式解决了这个问题:1)包括来自同一服务器(iframe 页面所在的那个)的 jQuery 库,而不是来自 Google 服务器。 2) 更改了 jQuery 版本 1.8.3。
【解决方案2】:

来自另一个 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)。

【讨论】:

    【解决方案3】:

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

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

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

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-07
        相关资源
        最近更新 更多