Javascript 404错误检测

时间:2012-11-26 17:48:32

标签: javascript http-status-code-404

我有一个页面,上面有自定义URL协议链接。自定义URL协议在安装exe时在用户的系统上注册。当用户单击网页上的自定义URL协议链接时,它会启动该exe(所有当前工作正常)。但是当他们点击该链接并且还没有在本地安装exe时,他们会在浏览器中获得标准错误页面。 因此,如果他们没有本地exe,我希望浏览器提供自定义错误页面,而不是告诉他们需要下载exe。我认为它可能就像单击链接时javascript侦听该错误一样简单,如果出现错误,则显示自定义错误页面。但我不知道该怎么做。错误页面是“无法显示网页。很可能是因为:此网页上的某些内容或文件需要您尚未安装的程序。” (我认为404错误?) 任何帮助都非常感激!

2 个答案:

答案 0 :(得分:3)

我建议制作一个确定协议是否已安装的测试功能:

  1. 使用您的协议从您的页面调用AJAX到测试页。
  2. 如果此操作成功且没有错误,则页面的其余部分可以安全地使用此协议。
  3. 如果AJAX调用失败,那么您将知道该协议尚未安装。
  4. Jquery会对这种方法有所了解。您甚至可以根据测试功能的成功/失败动态更改链接的URL。可以建立链接以发出弹出警告,用户需要安装协议处理程序。

答案 1 :(得分:0)

404是一个HTTP状态代码,所以当你调用自定义协议时,我认为你不能指望它。您可以尝试挂钩window.onerror,但如果有效,我会感到很惊讶。

我在类似情况下所做的是在安装中包含一个浏览器插件。然后,您可以在脚本中检查是否在用户尝试调用处理程序之前安装了处理程序。此外,您可以让插件报告已安装的版本,以便提示用户进行升级。缺点是,如果您不想限制支持的浏览器,则需要处理多个插件模型和体系结构。