代码之家  ›  专栏  ›  技术社区  ›  Ittai

JS中的resizeto给了我“访问被拒绝”的错误,如何知道浏览器是否准备好了?

  •  0
  • Ittai  · 技术社区  · 16 年前

    我有一个Web应用程序,它的用户界面是用GWT编写的,由于各种原因,当服务器报告事情时,我需要调整活动窗口的大小。 为了做到这一点,我使用了一个JSNI函数,它使用ResizeTo,并且一切工作都很好。 我做了一个小测试,尝试从服务器发送一些更新,并从resizeto命令得到了一个“拒绝访问”错误。 在谷歌搜索了一会儿之后,我发现这是因为浏览器仍在忙于另一个resizeto命令,并因此引发了一个异常。 我的问题是,是否有人有一个好方法来查看浏览器是否准备好/可以调整大小? 我现在正在考虑的一个解决方法,但我不特别喜欢,是 try { } catch() 如果抛出了异常,则捕获它并在超时时再次调用该函数,但我希望有一种更直接的方法。

    谢谢, 伊泰

    编辑: 不过,我想到了另一个问题,如果更新A和更新B从服务器返回,A在B休眠x ms时启动,同时从服务器发送更新C,发现A已完成,虽然B尚未唤醒,所以C执行,但只有B错误,因为B不包含最新的大小。你有解决办法吗?这是比赛条件的问题吗?谢谢

    1 回复  |  直到 16 年前
        1
  •  1
  •   g33kz0r    16 年前

    伊泰,

    如果我是一个懒惰的人(我也是),我会使用jquery的resize(),因为它会给你一个回调:

    http://docs.jquery.com/Events/resize

    你可以做一些像

    ready = false;
    $(window).resize(function(){
        ready = true;
    });
    

    诺亚

    推荐文章