从弹出窗口重新加载 jqgrid IE 8

发布于 2024-10-25 04:31:50 字数 567 浏览 4 评论 0原文

我尝试在 IE8 中单击弹出窗口中的关闭按钮后重新加载 jqgrid。但它给了我几个错误,现在我尝试在页面本身中重新加载它。这意味着不是从弹出窗口,而是在按下弹出窗口中的“关闭”按钮时运行一个功能(位于主页中)。 我收到错误 - 'window.opener.document' 为 null 或不是对象。(在 IE8 中)请在下面找到我的代码 -

弹出窗口函数 -

function closeUserPopup(){

//var x = window.opener.document.getElementById("myjqgrid");
//alert(x);
window.opener.document.callReload(); 
window.close();

}

父页面中的函数重新加载 jqgrid-

function callReload(){
jq("#mygrid").trigger("reloadGrid"); 

}

有什么方法可以从弹出窗口重新加载父页面 jqgrid ? ?(在关闭之前)提前致谢。

I try to reload my jqgrid after click on the close button in the popup window in IE8. but it gave me several errors and now i tried to reload it in the page itself. meaning that not from the popup window but run a function(resides in main page) upon press the 'close' button in the popup.
i am getting an error - 'window.opener.document' is null or not an object.(in IE8) please find my code below -

popup window function -

function closeUserPopup(){

//var x = window.opener.document.getElementById("myjqgrid");
//alert(x);
window.opener.document.callReload(); 
window.close();

}

function in the parent page to reload jqgrid-

function callReload(){
jq("#mygrid").trigger("reloadGrid"); 

}

is there any way to reload the parent page jqgrid from the popup window ? ?( before it get closed) Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

掩耳倾听 2024-11-01 04:31:50

它不是 window.opener.document 而是 window.opener
尝试检查之前的开启器是否仍然有效。
我通常会做这样的事情:

if ( window.opener != null)
   window.opener.callReload();
window.close(); 

一点建议。
我已经放弃了这样的弹出窗口,因为它们很难管理。
我倾向于使用 jQuery UI 对话框,这样我就可以在同一页面上管理所有内容。

更新

如果您使用window.showModalDialog();,事情会更加简单。
下面是一个示例:

<script type="text/javascript">
    function OpenDialog(userPopupUrl)
    {
        alert("starting!");
        var vReturnValue = window.showModalDialog(userPopupUrl,"dialogWidth:450px;dialogHeight:100­px;center:yes;resizable:no;status:no;help:no;");
        alert("I am here!");
        // You can refresh whatever you want here!!!!
    }
</script>

由于您正在创建一个对话框,因此客户端脚本进程将停止,直到您关闭弹出窗口。此时,您的 JavaScript 会重新获得控制权并可以触发一些其他操作。
PS:您可以像我一样使用返回值作为状态 此处

It's not window.opener.document but window.opener
Try to check if the opener is still valid before.
I usually do something like this:

if ( window.opener != null)
   window.opener.callReload();
window.close(); 

A little suggestion.
I've given up with popups like these cause they're hard to manage.
I tend to use a jQuery UI Dialog so I can manage everything on the same page.

UPDATE

If you're using window.showModalDialog(); things are even more simple.
Here's an example:

<script type="text/javascript">
    function OpenDialog(userPopupUrl)
    {
        alert("starting!");
        var vReturnValue = window.showModalDialog(userPopupUrl,"dialogWidth:450px;dialogHeight:100­px;center:yes;resizable:no;status:no;help:no;");
        alert("I am here!");
        // You can refresh whatever you want here!!!!
    }
</script>

Since you're creating a dialog the client-script process stops until you close the popup window. At that point, your javascript gets the control back and can fire some other actions.
PS: You can use - as I did - a return value as state here.

堇色安年 2024-11-01 04:31:50

可能不是最佳实践,但是:

(function () {
    var parentLocation = window.opener.location;
    window.opener.location = parentLocation;
})();

Probably not best practice, but:

(function () {
    var parentLocation = window.opener.location;
    window.opener.location = parentLocation;
})();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文