如何检测window.location是否失败
How do I detect if window.location failed?
如何检查对window.location
的调用是否因给定URL无效等原因而失败?我可以在窗口对象或其他对象上设置一些事件来捕捉这个吗?
最终使用了一种"变通方法",而不是我最初希望的通用解决方案:
我使用的事实是,我试图打开的链接是一个自定义的url方案(例如。myxx://localhost)在移动设备上,如果失败,我想执行的操作是重定向到标准的appstore URL(特定于操作系统)。解决方法尝试打开自定义URL,如果失败,超时功能将在不久后启动,并打开另一个URL:
setTimeout(function() { window.location=alternateUrl; }, 25);
window.location = customUrl;
不利的一面是,当customURL失败时,标准的safari浏览器会显示一个消息框,表明该网站无法打开,但至少它仍然会将用户重定向到应用商店。
不太可能,因为在执行window.location = someURL
时,甚至在测试URL之前,文档就会从窗口中删除。您没有剩余的代码可以测试它是否有效。
如果链接在同一来源,您可以发出XMLHttpRequest来测试页面是否可访问,但似乎没有办法测试页面是否仅由于跨来源请求或URL错误而不可请求。
对于一般文档,我不知道有什么方法可以测试是否可以访问外来源页面(但可以使用onload
事件处理程序对图像进行测试)。
您可以使用ajax检查页面是否存在。没有测试代码,但它应该可以工作。
var rekuest= new XMLHttpRequest();
rekuest.open('GET', 'http://www.thisdoesnotexits.org', true);
rekuest.send();
if (rekuest.status === "404") {alert("not exist!"); }
相关文章:
- window.location替换并传递URL历史记录条目中的变量
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- window.location使用jquery mobile实现chrome跳转
- Windows.Open 在 window.Location 工作时不起作用
- 如何将所有作业自定义到window.location.href
- window.location未刷新到现有URL
- 如果window.location.href.indexOf('player=1')添加样式
- 在$state.go之后执行$window.location.reload(true)
- javascript window.location在检查firebug时给了我一个错误的url路径
- angularjs 中 $window.location.reload() 和 $route.reload() 之间的区
- 在AJAX中使用window.location.replace'成功'回调
- IE中不支持JQuery window.location.hash
- PhoneGap如何在更改window.location/document.location后保持Javascript的
- 如何在更改window.location后停止执行
- 警报中的window.location必须重定向到上一页
- 如何在窗体操作或window.location(PHP)中使用数据切换
- 正在将目标添加到window.location
- window.location.htm无法在chrome扩展中工作
- 可以'当window.location.href时,无法从javascript获取post值
- 基于AJAX的网站中的JS window.location