Die*_*ego 25 javascript asp.net iframe internet-explorer internet-explorer-9
我在ASP.NET中使用iframe的网站非常完整.我正在努力改变我们用来显示对话框以使用jQuery UI对话框的旧控件.我也确保在IE9中一切正常.
事实是:我在iframe中显示的页面中的脚本在IE9中不起作用.为什么?因为Object,Array和String是未定义的.可能还有其他一些问题,我只看过这些问题.
没有机会(因为很多原因)在某些对话框上停止使用iframe.而且我宁愿不使用meta标签强制IE8 Compability.有谁知道在IE9中修复这个uggly错误的方法吗?
谢谢,迭戈
编辑
这里有一些信息可能是helfull:
我用来配置jQuery UI对话框的插件中iframe的jQuery代码:
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);
Run Code Online (Sandbox Code Playgroud)
Die*_*ego 27
注意:这里有一些IE9的文档可能有助于理解.感谢@Ben Amada分享它.
经过近一周的疯狂日复一日,我发现了它.
IE9的问题与iframe中的javascript代码无关.甚至没有使用javascript或任何库添加的iframe中的javascript(我有很多js库和插件可能会搞砸IE9).
问题是当您通过DOM移动iframe或一个祖先时.IE9将在iframe中加载的页面中执行多次动作.每次(但最后一个)都会有Object,String,Array等未定义的(以及其他bug).
例:
var iframe = $("<iframe>").attr("src", "www.example.com").attr("id", "myIframe");
iframe.appendTo("body");
$("#myIframe").appendTo("form:eq(0)");
Run Code Online (Sandbox Code Playgroud)
"www.example.com"中的javascript代码将执行一次上述错误,然后执行一次,没有错误.
使用以下代码,代码将只执行一次并且正确:
var iframe = $("<iframe>").attr("src", "www.example.com").attr("id", "myIframe");
iframe.appendTo("form:eq(0)");
Run Code Online (Sandbox Code Playgroud)
我希望这可以帮助别人避免这种痛苦,
迭戈
| 归档时间: |
|
| 查看次数: |
22437 次 |
| 最近记录: |