Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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
Javascript top.opener.location.reload(true)不刷新IE上的父页面_Javascript_Jquery - Fatal编程技术网

Javascript top.opener.location.reload(true)不刷新IE上的父页面

Javascript top.opener.location.reload(true)不刷新IE上的父页面,javascript,jquery,Javascript,Jquery,我有两个页面,父页面和我正在使用的页面: window.open('OrderDetailsFull.aspx?ObjectID=' + ObjectID[1] , "TableDetails","status=0 , toolbar=0 , location=no , menubar=0 , scrollbars=yes , height=600px , width=800px"); 打开一个新窗口并在那里操作数据 当我完成我正在做的事情时,我需要刷新父页面,以便在其中获取新数据 据我所知

我有两个页面,父页面和我正在使用的页面:

window.open('OrderDetailsFull.aspx?ObjectID=' + ObjectID[1] , "TableDetails","status=0 , toolbar=0 , location=no , menubar=0 , scrollbars=yes , height=600px , width=800px"); 
打开一个新窗口并在那里操作数据

当我完成我正在做的事情时,我需要刷新父页面,以便在其中获取新数据

据我所知,方法是:

top.opener.location.reload(true);
但由于某些原因,它在IE8或IE9中不起作用

因为我正在构建一个应用程序,而不是一个普通的网页。它将与IE一起在Windows操作系统上工作(到目前为止,它仍然是最常见的系统…对此没有什么可做的),所以我真的需要解决这个问题

我在网络上找不到任何解决这个问题的新方法,每个人都说应该是这样的

有人遇到过这个问题吗?有人知道怎么解决吗

好的,接下来的问题是:当我执行
opener.location.reload时(true)它是否重新呈现父页面(听起来是这样的)?如果是这样的话,那我就有大问题了,如果不是,那一定有办法做到这一点

问题是,我在父页面中有一个ajax调用,由于某种原因,当我使用它时,它保留在它的旧值中,只有当我重新加载子窗口时,父ajax才会显示真正的结果,下面是一些代码

这在开场白页面的document ready jQuery函数中:

$('div[id^="divTable"]').hover(
        function(e){
            //קבלת זהות השולחן הנלחץ
            ObjectID = $(this).attr('id').split('_');
            $(this).css("cursor","pointer");                
            //AJAX הבאת נתוני רשומת ההזמנה מהשרת ב
             var OrderDetails = $.ajax({
                    url:'AjaxActions/OrderDetails.aspx?ObjectID=' + ObjectID[1],
                    async:false                 
                }).responseText;
             //צף מעל שולחן כשעומדים עליו, ניתן לראות את פרטי הרשומה של אותו השולחן DIV
             $(this).append($('<div style="position: absolute; top: 0; left: -150;">' + OrderDetails + '</div>'));
             //וידוא שהשולחן עליו אנו עומדים יהיה העליון
             $(this).css("z-index","10");
             $(this).siblings().css("z-index","1");
        },   
        //כשיוצאים מהשולחן DIVהעלמת ה
        function () {
                  $(this).find('div:last').remove()
        }
    );
$('div[id^=“divTable”])。悬停(
职能(e){
//קבלת זהות השולחן הנלחץ
ObjectID=$(this.attr('id').split('uz');
$(this.css(“游标”、“指针”);
//阿贾克斯
var OrderDetails=$.ajax({
url:'AjaxActions/OrderDetails.aspx?ObjectID='+ObjectID[1],
异步:false
}).responseText;
//在15月15日日,在15月15日日的一个月内,从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从到到到到到到到到到到到到到到到到到到到到到到到到从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从השולחןDIV
$(this.append($(''+OrderDetails+'');
//וידוא שהשולחן עליו אנו עומדים יהיה העליון
$(this.css(“z-index”,“10”);
$(this.this().css(“z-index”,“1”);
},   
//•
函数(){
$(this.find('div:last').remove()
}
);
这是子窗口中应刷新打开程序的函数之一:

    $('#ctrl_Print').click(
        function()
        {
            alert($('#hidItem').val());
            var Items = new Array(); 
            Items = $('#hidItem').val().split(',');
            for(var i=0;i<Items.length;i++)
            {
                alert(Items[i]);
            }
            opener.location.reload(true);
            window.location = 'OrderDetailsFull.aspx?OrderID=' + OrderID + '&ObjectID=' + ObjectID + '&Print=' + Items;
            window.close();
        }
    );
$('ctrl#u Print')。单击(
函数()
{
警报($('#hidItem').val());
var Items=新数组();
Items=$('#hidItem').val().split(',');

对于(var i=0;i如果您想访问父窗口(或框架),您应该使用
parent
,而不是
top

parent.location.reload(true);
当您的页面是该窗口内的一个框架时,请向其添加更多的
parent
s:

parent.parent.location.reload(true);

如果要访问父窗口(或框架),应使用
parent
,而不是
top

parent.location.reload(true);
当您的页面是该窗口内的一个框架时,请向其添加更多的
parent
s:

parent.parent.location.reload(true);

top
用于在处理框架集和/或iFrame时获取当前物理窗口中最外层的文档,与
窗口无关。请以任何方式打开
,因此除非弹出页面中有框架或iFrame,否则不应使用
top
。以下操作可以:

opener.location.reload(true);

top
用于在处理框架集和/或iFrame时获取当前物理窗口中最外层的文档,与
窗口无关。请以任何方式打开
,因此除非弹出页面中有框架或iFrame,否则不应使用
top
。以下操作可以:

opener.location.reload(true);

看起来IE 8和9在刷新开启器时有安全限制。

看起来IE 8和9在刷新开启器时有安全限制。

我遇到了这个问题,在Chrome中重载()工作,但在IE中呕吐

尝试使用window.location.replace(此处是您的url和参数)

您必须收集replace()的url和参数,但它绕过了IE错误消息

例如:

在Joomla2.5中,父窗口为用户输入启动模态,在这里我们需要重新加载父窗口(视图),以便运行使用模态输入的代码

模态在父窗口中激发函数,如

function updateAddresses(runUpdate, itemID, closeModal){
        if(closeModal == true ){
           SqueezeBox.close(); 
        }

        if(runUpdate == true){
           //location.reload(); 
           var replaceURL = 'index.php?option=com_poecom&view=cart&ItemId='+itemID;
           window.location.replace(replaceURL);
        }
    }

我遇到过这样一个问题:reload()在Chrome中起作用,但在IE中会呕吐

尝试使用window.location.replace(此处是您的url和参数)

您必须收集replace()的url和参数,但它绕过了IE错误消息

例如:

在Joomla2.5中,父窗口为用户输入启动模态,在这里我们需要重新加载父窗口(视图),以便运行使用模态输入的代码

模态在父窗口中激发函数,如

function updateAddresses(runUpdate, itemID, closeModal){
        if(closeModal == true ){
           SqueezeBox.close(); 
        }

        if(runUpdate == true){
           //location.reload(); 
           var replaceURL = 'index.php?option=com_poecom&view=cart&ItemId='+itemID;
           window.location.replace(replaceURL);
        }
    }

问题是关于弹出窗口,而不是框架。OP使用“父级”一词有误导性。问题是关于弹出窗口,而不是框架。OP使用“父级”一词这是误导性的。我已经尝试了所有三种方法,但都不起作用,仍然获取旧数据…但是10x…window.opener.top.location确实有效,至少在IE11上测试时是这样。我已经尝试了所有三种方法,但都不起作用,仍然获取旧数据…但是10x…window.opener.top.location确实有效,至少在IE11上测试时是这样