首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >IE9中iframes中的JavaScript代码不起作用

IE9中iframes中的JavaScript代码不起作用
EN

Stack Overflow用户
提问于 2011-04-01 22:46:31
回答 3查看 22.7K关注 0票数 25

我有一个非常完整的ASP.NET站点,它使用iframes。我正在努力将我们用来显示对话框的旧控件更改为使用jQuery UI对话框。我也在确保IE9中的一切工作正常。

事实是:我在iframe中显示的页面中的脚本在IE9中不起作用。为什么?因为Object、Array和String是未定义的。可能还有其他一些问题,我只看到了这些问题。

没有机会(因为有很多原因)停止在某些对话框上使用iframe。我不想使用meta标签来强制IE8兼容。有谁知道修复IE9中这个丑陋的bug的方法吗?

我在配置jQuery UI对话框中创建的插件中的iframe的jQuery代码:

代码语言:javascript
运行
复制
options.content = $("<iframe>")
    .attr("src", options.intSrcIframe)
    .attr("frameborder", 0)
    .attr("scrolling", options.intIframeScrolling)
    .css("background-color", options.intBgColorIframe)
    .attr("height", "100%")
    .attr("width", "100%");

_this.html(options.content);
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-08 01:20:32

注意:here来自IE9的一些文档可能有助于理解。感谢@Ben Amada分享它。

经过近一周的疯狂,我日复一日地发现了这一点。

IE9的问题不在于iframe中的javascript代码。即使用javascript或任何库添加的iframe中的javascript也不行(我有很多js库和插件可能会破坏IE9)。

问题是当您通过DOM移动iframe或一个祖先时。IE9将执行加载到iframe中的页面中的代码的次数与您所做的移动次数相同。每一次(除了最后一次)都会有Object,String,Array和其他未定义的(以及其他bug)。

示例:

代码语言:javascript
运行
复制
var iframe = $("<iframe>").attr("src", "www.example.com").attr("id", "myIframe");
iframe.appendTo("body");
$("#myIframe").appendTo("form:eq(0)");

"www.example.com“中的javascript代码将执行一次,出现上述错误,然后执行一次,没有错误。

使用以下代码,代码将只正确执行一次:

代码语言:javascript
运行
复制
var iframe = $("<iframe>").attr("src", "www.example.com").attr("id", "myIframe");
iframe.appendTo("form:eq(0)");

我希望这能帮助别人避免这种痛苦,

迭戈

票数 27
EN

Stack Overflow用户

发布于 2011-08-02 00:34:02

如果你不是在创建一个新元素,有一种类似的方法可以使用现有的iframe来实现这一点。

代码语言:javascript
运行
复制
$(function () {
    var iframeSrc = $("#iframeid").attr("src"); // capture target URI
    $("#iframeid").attr("src", "about:blank"); // delay loading until we reposition in the DOM
    $("#iframeid").appendTo("#newparent").attr("src", iframeSrc); // reposition, load iframe by setting src
});

IE9或jquery框架需要解决这个问题。

票数 3
EN

Stack Overflow用户

发布于 2012-10-12 22:13:04

我遇到了类似的问题,但是iframe被添加到页面而不是从页面中删除。它似乎仍然存在同样的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5514973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档