Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IE9中iframes中的JavaScript代码不起作用_Javascript_Asp.net_Internet Explorer_Iframe_Internet Explorer 9 - Fatal编程技术网

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

IE9中iframes中的JavaScript代码不起作用,javascript,asp.net,internet-explorer,iframe,internet-explorer-9,Javascript,Asp.net,Internet Explorer,Iframe,Internet Explorer 9,我在ASP.NET中有一个非常完整的网站,它使用iFrame。我正在将一个用于显示对话框的旧控件更改为使用jQueryUI对话框。我也在确保IE9中的所有功能都正常工作 事实是:iframes中显示的页面中的脚本在IE9中不起作用。为什么?因为对象、数组和字符串未定义。可能还有其他一些问题,我只看到了这些 没有机会(因为很多原因)停止在某些对话框上使用iframe。我宁愿不要使用meta标签来强制IE8兼容。有人知道如何修复IE9中这个丑陋的错误吗 我为配置jQuery UI对话框制作的插件中i

我在ASP.NET中有一个非常完整的网站,它使用iFrame。我正在将一个用于显示对话框的旧控件更改为使用jQueryUI对话框。我也在确保IE9中的所有功能都正常工作

事实是:iframes中显示的页面中的脚本在IE9中不起作用。为什么?因为对象、数组和字符串未定义。可能还有其他一些问题,我只看到了这些

没有机会(因为很多原因)停止在某些对话框上使用iframe。我宁愿不要使用meta标签来强制IE8兼容。有人知道如何修复IE9中这个丑陋的错误吗

我为配置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);
options.content=$(“”)
.attr(“src”,options.intSrcIframe)
.attr(“帧边框”,0)
.attr(“滚动”,选项.intIframeScrolling)
.css(“背景色”,选项.intBgColorIframe)
.attr(“高度”、“100%”)
.attr(“宽度”、“100%”);
_html(options.content);
注意:IE9中的一些文档可能有助于理解。感谢@Ben Amada分享


经过将近一周的日复一日的疯狂之后,我发现了这一点

IE9的问题并不特别在于iframes中的javascript代码。即使是javascript或任何库添加的iFrame中的javascript(我有很多js库和插件可能会破坏IE9)

问题是在DOM中移动iframe或一个祖先时。IE9将在iframe中加载页面中的代码,执行次数与您的移动次数相同。每次(但最后一次)都会有对象、字符串、数组和其他未定义的错误(以及其他错误)

例如:

var iframe = $("<iframe>").attr("src", "www.example.com").attr("id", "myIframe");
iframe.appendTo("body");
$("#myIframe").appendTo("form:eq(0)");
var-iframe=$(“”).attr(“src”,“www.example.com”).attr(“id”,“myIframe”);
iframe.附件(“正文”);
$(“#myIframe”)。附录(“表格:eq(0)”;
“www.example.com”中的javascript代码将执行一次,出现上述错误,然后执行一次,没有错误

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

var iframe = $("<iframe>").attr("src", "www.example.com").attr("id", "myIframe");
iframe.appendTo("form:eq(0)");
var-iframe=$(“”).attr(“src”,“www.example.com”).attr(“id”,“myIframe”);
iframe.appendTo(“形式:等式(0)”);
我希望这能帮助别人避免屁股痛


Diego

如果不创建新元素,可以使用现有iframe以类似的方式实现这一点

$(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框架需要修复此问题。

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

您如何知道它们未定义?能否提供一些示例代码,说明如何实例化iframe?例如,您是否在iframe中加载jQuery?@Šime Vidas:我正在从visual sudio运行该站点,因为这些更改尚未实现。感谢您的分析。我正准备用我的网站来解决这个问题,这将非常有帮助。谢谢,我也遇到了同样的问题。你帮我省去了很多挫折。看起来这种行为来自于有文件记录的IE9更改:。你认为这个答案让我免于发疯-谢谢!我很高兴它帮助了你,@garethowen它是添加到DOM之前还是之后的源代码集?一旦进入DOM,它会被移动吗?如果是,尽量避免。另外:这应该是一个答案吗?源从来没有设置,因为iframe只是用来作为页面提交的目标。我想不起来这是否发生在我身上(很久以前)。