Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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
Jquery 在IE8中,yepnope在第一次尝试时不在iframe中加载资源_Jquery_Iframe_Internet Explorer 8_Jquery Ui Dialog_Yepnope - Fatal编程技术网

Jquery 在IE8中,yepnope在第一次尝试时不在iframe中加载资源

Jquery 在IE8中,yepnope在第一次尝试时不在iframe中加载资源,jquery,iframe,internet-explorer-8,jquery-ui-dialog,yepnope,Jquery,Iframe,Internet Explorer 8,Jquery Ui Dialog,Yepnope,我使用jQuery模态对话,在对话中我们嵌入了iframe。 iframe包含按钮“显示搜索结果” 第一次尝试单击“显示搜索结果”按钮时,什么也没有发生。 我的结果未在表中呈现(可能服务器请求未触发) 只有当我切换到浏览器的其他选项卡时,它才会出现,第二次将正确呈现表格 var __run = function(getData) { yepnope({ test : $.fn.flexigrid, nope : [ 'www/css/flexigrid.css',

我使用jQuery模态对话,在对话中我们嵌入了iframe。 iframe包含按钮“显示搜索结果”

第一次尝试单击“显示搜索结果”按钮时,什么也没有发生。 我的结果未在表中呈现(可能服务器请求未触发)

只有当我切换到浏览器的其他选项卡时,它才会出现,第二次将正确呈现表格

var __run = function(getData) {
    yepnope({
      test : $.fn.flexigrid,
      nope : [ 'www/css/flexigrid.css', '/www/javascripts/flexigrid.js'],
      complete : getData
    });
当IE8中第一次调用uu run函数时,则应执行但无法执行getData(传递的函数)

此问题与IE8有关

如何处理上述问题?有什么快速的建议吗?

在其他浏览器如Firefox和Chrome中,一切正常

如果我将模式标记更改为错误,然后第一次尝试“显示搜索结果”按钮单击事件,我将在IE8中获得结果,但我们需要模式对话,因此这不是好的解决方案

myWindow.dialog({
                modal : false,
更新添加了Jquery UI对话代码

    NewModalUI.popWindow = function($){
    var mWindow = null, mFrame;
    var build = function(){
        mWindow = $('<div id="UI_modal" style="display:none"><iframe id="UI_modalFrame" name="UI_modalFrame" width="100%" height="97%" SCROLLING="auto" frameborder="0"></iframe></div>').appendTo($('body'));
        mFrame = mWindow.find('iframe')
    };
    var isReady = function(){
        return mWindow;
    };
    var isVisible = function(){
        return (!mWindow.is(':hidden'))
    };
    var close = function(){
        __log("Window closed ...");
        mFrame.attr('src', '');
        mWindow.dialog('close')
    };
    var open = function(url){
        if(!isReady()){
            build()
            mFrame.bind('load.modalWindow',function(){
                var $div = mFrame.contents().find('.submitContainerDiv');
                if($div.find('.submitBtns').find('input').length == 1){
                    $div.hide()
                }
            })
            mFrame.attr('src', url)
            mWindow.dialog({
                modal : true,
                height: $(window).height()-100,
                minHeight: '250',
                maxHeight: '90%',
                width:'80%',
                minWidth : '50%',
                maxWidth:'90%',
                buttons : { 
                    'Cancel':function(){
                        $(this).dialog('close')
                    }
                },
                beforeClose : function(){
                    mFrame.attr('src', '')
                }
            })
        }

        if(!isVisible()){
            mFrame.attr('src', url)
            mWindow.dialog('open')
        }else{
            mFrame.attr('src', url)
        }
    };
    return {
        window: mWindow,
        build : build,
        isReady : isReady,
        isVisible : isVisible,
        close : close,
        open : open
    }
}(jQuery);
NewModalUI.popWindow=函数($){
var mWindow=null,mFrame;
var build=function(){
mWindow=$('').appendTo($('body');
mFrame=mWindow.find('iframe')
};
var isReady=函数(){
返回mWindow;
};
var isVisible=function(){
返回(!mWindow.is(':hidden'))
};
var close=function(){
__日志(“窗口关闭…”);
mFrame.attr('src','');
mWindow.dialog(“关闭”)
};
var open=函数(url){
如果(!isReady()){
构建()
mFrame.bind('load.modalWindow',函数(){
var$div=mFrame.contents().find('.submitContainerDiv');
if($div.find('.submitBtns').find('input').length==1){
$div.hide()
}
})
mFrame.attr('src',url)
对话({
莫代尔:是的,
高度:$(窗口)。高度()-100,
最小高度:'250',
最大高度:“90%”,
宽度:'80%',
最小宽度:“50%”,
最大宽度:'90%',
按钮:{
“取消”:函数(){
$(此).dialog('关闭')
}
},
beforeClose:function(){
mFrame.attr('src','')
}
})
}
如果(!isVisible()){
mFrame.attr('src',url)
mWindow.dialog(“打开”)
}否则{
mFrame.attr('src',url)
}
};
返回{
窗口:mWindow,
建造:建造,
isReady:isReady,
isVisible:isVisible,
关:关,,
打开:打开
}
}(jQuery);
还观察了IE8生成的html代码

IE8或yepnope向脚本标记添加具有null值的onload事件属性 前


第二次以后,由yepnope加载的资源的onload事件属性值发生更改,搜索结果填充到网格中。 前



希望找到最好的解决方案。

我用jQuery 1.9.1和jQuery UI 1.9.2做了一个例子,应该是不言自明的

myWindow.dialog({
                modal : false,
HTML

<a href="#dlg" id="show-dlg">Show dialog</a>
<div id="dlg" class="hide">I am the dialog ;)</div>
CSS

.hide {
    display: none;
}

我认为该对话框存在某种错误或配置错误。您能更具体地介绍一下对话JS代码吗?@michalzuber谢谢您的回复。添加jquery对话框js代码供参考。上面的jquery对话框中是否存在任何错误配置?如果是,请告诉我。谢谢,我建议在应该添加分号的地方添加分号,如果它不起作用,我也会尝试在它的基本jqueryui模型对话示例中使用linting。请参阅更新的问题。
;(function ( $, window, document, undefined ) {

    $('#show-dlg').on('click', function() {

        var id = $(this).attr('href');

        $(id).dialog({
            bgiframe: true,
            resizable: false,
            draggable: false,
            modal: true
        });

        return false;
    });


})( jQuery, window, document );
.hide {
    display: none;
}