js 判断一个 url/网址是否能正常打开,然后跳转不同的网址,咋写?

2022-08-14 21:48:07 +08:00
 qiubangzhu

js 判断 baidu.com 是否正常,正常就在 3 秒之后跳转到 baidu.com

不正常就不跳转,在当前页面不动

咋写?

搜过一圈,没找到能用的,本人小白一个,大佬帮忙写一个,谢谢了

5269 次点击
所在节点    程序员
27 条回复
yitalin
2022-08-15 11:54:25 +08:00
@flymeto 查看源码就行 没加密
@hxy100 报错不允许跨域也是连接上了才会受到错误,所以只管能连接就行
lisongeee
2022-08-15 11:59:42 +08:00
#11 可以优化一下,把 try/catch 去掉

```js
let controller = new AbortController();
setTimeout(() => {
controller.abort();
}, 6000);

let isOk = await fetch("https://baidu.com/", {
mode: "no-cors",
signal: controller.signal
}).catch(()=>false);
```
qiubangzhu
2022-08-15 15:02:13 +08:00
@lisongeee 这个咋用 直接复制粘贴到.js 文件里面就行了吗?我直接复制粘贴进去(.js 文件里面原本没有任何代码) 无法自动跳转
hxy100
2022-08-15 16:39:23 +08:00
@yitalin 并不是啊,我测试过,一是用一个没有有效解析的假域名,二是用一个访问正常,但不允许跨域的网站,两种情况测试下来收到的 status 都是 error ,并不能有效区分;
ruoduan
2022-08-15 17:22:45 +08:00
```js
const img = new Image()
img.onload = () => { console.log('可以访问') }
img.src = `https://www.baidu.com/favicon.ico`
```
yitalin
2022-08-15 18:08:35 +08:00
@hxy100 不是用 status 来判断的,我是用的 complete
hxy100
2022-08-17 00:30:08 +08:00
@yitalin 我说的就是你 complete 函数中的 status 参数,我是用你的代码克隆下来测试的,确实有问题,你可以自己试试;
---

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/872818

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX