gpt4 book ai didi

javascript - 在iframe中显示之前使用javascript检测url是否存在

转载 作者:IT王子 更新时间:2023-10-29 03:17:57 28 4
gpt4 key购买 nike

我正在使用 javascript 将动态 url 传递给 iframe src。但有时url不存在,我怎么能事先检测到不存在的url,这样我就可以隐藏带有404错误的iframe。

最佳答案

由于我的声誉低下,我无法对 Derek 绅会功夫的回答发表评论。我已经按原样尝试了该代码,但效果不佳。 Derek 森会功夫的代码存在三个问题。

  1. 首先是异步发送请求和更改其属性“status”的时间比执行下一个表达式 - if(request.status === "404") 慢。因此 request.status 最终将由于互联网带宽而保持状态 0(零),并且它不会实现下面的代码。要解决这个问题很容易:在打开 ajax 请求的方法时将“true”更改为“false”。这将导致您的代码出现短暂(或并非如此)阻塞(由于同步调用),但会在到达 if 测试之前更改请求的状态。

  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.");
}

关于javascript - 在iframe中显示之前使用javascript检测url是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10926880/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com