javascript - window.open .. 一种判断窗口是否超时或 404 的方法?

标签 javascript

我一直在制作一个使用某种……外部调查的网页。我想知道在使用 window.open 方法时,您能否判断您的新窗口是否有 404 或页面超时尝试加载?

这是我目前所拥有的:

child = window.open(href, 'window');
        setTimeout(function() {
            // Do some backend processing if child window is still open and no 404 / timeout
        }, 10000);

最佳答案

这是一件非常困难的事情。你必须处理安全问题(JS 禁止跨域访问)。但我认为这个函数可以解决问题:

child = window.open(href, 'window');
        setTimeout(function() {
            try {
                var foo = child.location;
            }
            catch (err) {
                // It has loaded. Manage that.
                return;
            }
            // Still loading. Code here.
            }
        }, 10000);

解释:尝试访问子窗口的location元素。如果窗口已加载,尝试访问它会抛出异常(禁止跨域 JS 访问),因此您可以管理它。但是,如果您可以访问该位置,则可能意味着它仍在加载。

主要问题是,使用这段代码,您只能区分它何时加载,所以我想您只能检查超时。我认为检查 404 错误几乎是不可能的,因为 JS 安全限制不允许您获取外部页面的位置或内容。

关于javascript - window.open .. 一种判断窗口是否超时或 404 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8631461/

相关文章:

javascript - 如何使用jquery移动数据 block

javascript - 如何将组件对象移动到全局对象?

javascript - 如何使用 JavaScript API 在移动设备的 map 中禁用两指缩放选项?

javascript - 如何在 VPS 上找到 Node.js Express 站点的 URL?

javascript - 在客户端 JavaScript 中访问 Express.js 局部变量

javascript - 是否有充分的理由将字符串传递给 setTimeout?

javascript - 在 Javascript 中替换 innerHTML 后,复选框上的 OnClick 事件在 IE 中不起作用

javascript - 扩展关于 ul li 背景图像的 Twitter Bootstrap 的正确方法是什么

javascript - 如何使用 javascript 获取文件夹中的图像列表?

javascript - struts2-jquery datepicker 标签未加载到 struts2-jquery tabbedpannel 标签中