Javascript 404错误检测

Javascript 404错误检测,javascript,http-status-code-404,Javascript,Http Status Code 404,我有一个带有自定义URL协议链接的页面。自定义URL协议在用户安装exe时在用户系统上注册。当用户单击网页上的自定义url协议链接时,它将启动该exe(所有当前运行良好)。但是,当他们单击该链接并且还没有在本地安装exe时,他们会在浏览器中看到一个标准错误页面。 因此,如果他们没有本地exe,我希望浏览器显示一个自定义错误页面,告诉他们需要下载exe。我认为这可能很简单,就像javascript在点击链接时监听错误一样,如果存在错误,则显示自定义错误页面。但我不知道怎么做。错误页面为“无法显示网

我有一个带有自定义URL协议链接的页面。自定义URL协议在用户安装exe时在用户系统上注册。当用户单击网页上的自定义url协议链接时,它将启动该exe(所有当前运行良好)。但是,当他们单击该链接并且还没有在本地安装exe时,他们会在浏览器中看到一个标准错误页面。 因此,如果他们没有本地exe,我希望浏览器显示一个自定义错误页面,告诉他们需要下载exe。我认为这可能很简单,就像javascript在点击链接时监听错误一样,如果存在错误,则显示自定义错误页面。但我不知道怎么做。错误页面为“无法显示网页。最可能的原因:此网页上的某些内容或文件需要您尚未安装的程序。”(我想是404错误?)
非常感谢您的帮助

我建议做一个测试函数,确定协议是否已安装:

  • 使用协议从页面向测试页面进行AJAX调用
  • 如果此操作成功且没有错误,则页面的其余部分可以安全地使用此协议
  • 如果AJAX调用失败,那么您将知道该协议尚未安装

  • Jquery可以轻松地使用这种方法。您甚至可以根据测试功能的成功/失败动态更改链接的URL。这些链接可以用来弹出一个警告,提示用户需要安装协议处理程序。

    404是一个HTTP状态代码,因此我认为在调用自定义协议时,您不可能期望出现这种情况。您可以尝试挂接到
    window.onerror
    ,但如果这样做有效,我会有点惊讶


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

    感谢您的响应。我想我不是在寻找一个通用的解决方案,而是在寻找一个特定的代码。我知道它也可以通过javascript实现,但我不确定我有多喜欢它。我所知道的是,我不能用任何语言做这件事!;-)我希望有代码示例……顺便说一句,您说过要调用“测试页”。协议正在调用本地exe。那么您是说对本地系统注册表进行ajax调用,以查看url协议是否在其中?用一个函数调用实际的url协议,如果它出现错误或者它不继续调用并启动本地exe,不是更容易吗?我可能有点误解,但听起来你在这个过程中增加了一个不必要的步骤。这发生在链接点击上,而不是页面加载上。不,我是说使用您安装的协议调用测试页面。如果它在那里,那么它就会成功。答案和你的问题一样笼统。。。让你的问题更具体,我很乐意提供一个基于代码的解决方案。谢谢李。我是说我不能写任何ajax代码。因此,您描述的解决方案听起来不错,但没有确切的代码来执行您指示的操作,我不完全理解或无法继续。我认为我最初的问题相当具体,但可能是我在这方面缺乏知识造成了问题。不知道如何更具体。@Tim-如果您描述了通过新协议提供服务的数据类型以及URL的外观等,会有所帮助。