共计 1489 个字符,预计需要花费 4 分钟才能阅读完成。
js 判断 baidu.com 是否正常,正常就跳转到 baidu.com
不正常就不跳转,在当前页面不动 咋写?球一个代码 |
网友回复:
注册 : 虽然知道,但是下一个
腾讯云 6 折购 : 好的,下一个
require: 救救孩子
笑花落半世琉璃 : 试试看用 AJAX 判断返回信息
腾讯云 6 折购 : 一般是 用 img 标签的 onerror
ctoh: https://pyscript.net/ Run Python in Your HTML
teardrops: AJAX 判断响应头代码,2XX-3XX 都放行 4XX 拦截不让跳即可
silence: js 跨域了 换思路
Salta: 判断分享链接是否有效吗?
注册 : 差不多 就是想在访问之前判断一下
注册 : ajax
腾讯云 6 折购 : 好久没写了,要不写个了
beastie: 如果不是同一个域名的话,现代浏览器基本都会报跨域错误了,不管你用 ajax 还是 img.onload 还是 canvas 什么的。有个比较取巧的办法是利用大多数网站都有 /favicon.ico 这个文件可供访问,结合 img.onload 就能绕过跨域问题了:function check(url) {if (!url) return if (url[url.length – 1] !== ‘/’) url += ‘/’ var img = document.createElement(‘img’) img.onload = function() { console.log(url, ‘ loaded, redirecting…’) window.location = url } img.onerror = function(e) {console.log(url, ‘ fail to load, stay.’) console.error(e) } img.src = url + ‘favicon.ico’ img.style.display = ‘none’ document.body.appendChild(img) } // check(‘https://www.baidu.com’) check(‘https://www.baidufsfsdfad.com’) 复制代码 但如果这个网址没提供 favicon.ico 的话,那么就会误判了…… 追求准确的话,建议用服务端搭建一个检测接口,如要降低成本,也可以利用一些 serverless 服务。
呆呆的游客 : 感谢大佬 试了一下真的可以 牛逼牛逼,有个小点忘记说了,怎么加个定时器,5 秒之后跳转呢?
ggsmida: https://developer.mozilla.org/zh-CN/docs/Web/API/setTimeout
腾讯云 6 折购 : window.setTimeout(() => {window.location = url}, 5000); 复制代码
ggsmida: 请问这句代码放在最后就可以了吗
darius: 这个写在哪里鸭?我是希望检测到网址可以访问之后,五秒之后跳转到 baidu.com。检测不可以访问就也不用倒计时了,什么都不做
腾讯云 6 折购 : 大佬 这两句代码啥区别 window.setTimeout(() => {window.location = url}, 5000); 复制代码 javascript:setTimeout(() => {window.location = url}, 5000); 复制代码
注册 : 下面那个是为了方便把事件触发后要执行的逻辑直接写在标签上。上面的就是你下面 javascript: 后的执行逻辑