使用JavaScript来检测URL是否在iframe中显示之前存在使用JavaScript来检测U

2019-05-17 10:02发布

我使用JavaScript通过动态的URL IFRAME SRC。 但有时URL不存在,我怎么能检测不存在事先的网址,这样我可以隐藏的iframe,与404错误。

Answer 1:

由于我的低信誉我不能德里克朕会功夫的回答发表评论。 我已经试过了代码,因为它是,它没有工作。 有德里克朕会功夫的代码三个问题。

  1. 第一个是对异步发送请求并改变其属性“状态”的时间慢于执行下一表达 - 如果(request.status ===“404”)。 所以request.status最终,由于互联网乐队,留在状态0(零),这将无法实现正确的,如果下面的代码。 为了解决这个问题很简单:变“真”对方法开放Ajax请求的“假”。 这将导致一个简短的(或不那么)块代码(由于同步调用),但会改变,如果在到达前测试请求的状态。

  2. 第二个是,状态是一个整数。 使用“===” JavaScript的比较运算符你想比较,如果左侧的对象是相同的一个右侧。 为了使这项工作有两种方式:

    • 删除围绕404的报价,使其成为一个整数。
    • 使用JavaScript的运算符“==”所以你如果两个对象进行类似测试。
  3. 三是XmlHttpRequest对象仅适用于较新的浏览器(Firefox,Chrome和IE7 +)。 如果你想要的片段对你有W3Schools的暗示方式做所有的浏览器: W3Schools的AJAX

真正为我工作的代码是:

var request;
if(window.XMLHttpRequest)
    request = new XMLHttpRequest();
else
    request = new ActiveXObject("Microsoft.XMLHTTP");
request.open('GET', 'http://www.mozilla.org', false);
request.send(); // there will be a 'pause' here until the response to come.
// the object request will be actually modified
if (request.status === 404) {
    alert("The page you are trying to reach is not available.");
}


Answer 2:

使用XHR和看它是否响应你一个404或没有。

var request = new XMLHttpRequest();  
request.open('GET', 'http://www.mozilla.org', true);
request.onreadystatechange = function(){
    if (request.readyState === 4){
        if (request.status === 404) {  
            alert("Oh no, it does not exist!");
        }  
    }
};
request.send();

但是请注意,它只能在同一起源的工作。 对于另一台主机,你将不得不使用服务器端语言要做到这一点,你将必须自己看着办吧。



Answer 3:

我发现这个曾在我的情况。

所述jqXHR.success(),jqXHR.error(),在1.5的jQuery引入和jqXHR.complete()回调方法弃用的jQuery 1.8。 要为他们的最终准备拆除你的代码,使用jqXHR.done(),jqXHR.fail(),和jqXHR.always()代替。

$.get("urlToCheck.com").done(function () {
  alert("success");
}).fail(function () {
   alert("failed.");
});


Answer 4:

你可以测试通过AJAX的URL和读取的状态码 - 也就是说,如果URL是在同一个域中。

如果它是一个远程域,你可以有一个服务器脚本在自己的域检查出远程URL。



Answer 5:

你可以尝试做一个简单的获取页面上,如果你得到一个200回到它意味着页面存在。 试试这个(使用jQuery),该函数是一个成功的页面加载成功的回调函数。 请注意,这只会在你的域内的网站,以防止XSS工作。 其他领域将不得不处理服务器端

$.get(
   yourURL,
   function(data, textStatus, jqXHR) {
      //load the iframe here...
   }
);


文章来源: using javascript to detect whether the url exists before display in iframe