繁体   English   中英

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

[英]top.opener.location.reload(true) not refreshing parent page on IE

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

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 OS上运行(因为到目前为止,它仍然是最常见的系统...对此无能为力),所以我真的需要解决此问题。

对于这个问题,我在网络上找不到任何新的解决方案,每个人都说它应该那样工作.....

有没有人遇到这个问题? 有人知道如何解决吗?

好吧, opener.location.reload(true);问题:当我做opener.location.reload(true); 是否重新呈现父页面(听起来)? 如果是这样,那么我就遇到了大问题,如果不是,那么必须有一种方法可以做到……

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

这是在打开页面的文档准备好的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()
        }
    );

这是子窗口中应刷新打开器的功能之一:

    $('#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();
        }
    );

10倍...

IE 8和9似乎在刷新打开器时具有安全限制。

我遇到了这个问题,其中reload()在Chrome中有效,但在IE中却很糟糕。

尝试使用window.location.replace(此处为您的网址和参数)。

您必须收集url和params()的参数,但是它会绕过IE错误消息。

例:

在Joomla 2.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);
        }
    }

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

parent.location.reload(true);

当页面是该窗口内的框架时,请向其添加更多parent

parent.parent.location.reload(true);

top在处理框架集和/或iframe时用于在当前物理窗口中获取最外面的文档,并且与window.open无关,因此,除非有任何框架或iframe,否则不应该使用top您的弹出页面。 将执行以下操作:

opener.location.reload(true);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM