Javascript jquery备用链接错误?

Javascript jquery备用链接错误?,javascript,jquery,html,onerror,Javascript,Jquery,Html,Onerror,我的jquery应用程序在html中包含一个指向托管在服务器上的文档的链接,某些用户无法访问该文档。我可以在另一台服务器上托管该文档的副本 如果用户无法访问原件,我希望将其定向到副本。但如果可能的话,可以查阅原件 我想: <a href="http://www.theoriginal.org" onerror="http://www.thecopy.org">Link</a> 但这一点被忽视了。我看到了很多关于破碎图片的问题和答案,但对于其他类型的链

我的jquery应用程序在html中包含一个指向托管在服务器上的文档的链接,某些用户无法访问该文档。我可以在另一台服务器上托管该文档的副本

如果用户无法访问原件,我希望将其定向到副本。但如果可能的话,可以查阅原件

我想:

    <a href="http://www.theoriginal.org"     onerror="http://www.thecopy.org">Link</a>

但这一点被忽视了。我看到了很多关于破碎图片的问题和答案,但对于其他类型的链接却不多

如果相关,“原始”链接由一些javascript插入

我尝试了建议的Ajax代码,使用google的主页作为示例url,不幸的是遇到了这样的问题:“跨源请求被阻止:同一源策略不允许读取位于的远程资源。这可以通过将资源移动到同一域或启用CORS来解决。”
因此,我无法通过这种方式测试页面是否存在。

您可以发出ajax请求,并根据响应代码更改链接href

<a class="if-not-working" data-replace-with="http://thecopy.org" href="http://www.theoriginal.org">Link</a>

下面是检查文档是否存在的常规jQuery/ajax代码:

    $.ajax({
    url:'example.html',
    type:'HEAD',
    error: function()
    {
        //file not exists
        $('a').attr('href', 'backup.html');
    },
    success: function()
    {
        //file exists
        $('a').attr('href', ''example.html'');
    }
});

如果您的页面上有很多链接需要备份链接,您可以通过在页面中的所有链接中循环并在其中传递备份链接,使其成为一种功能,否则在整个页面中循环是一种过激行为。

如果原始文件位于不同的服务器(而不是承载应用程序的服务器)上,这是否可行…我看到很多关于ajax查询不能跨域工作的信息。很抱歉,我以为您是说原始文件在您的服务器上。据我所知,这两个文件都托管在两个不同的服务器上,其中没有一个服务器是您的。是这样吗?!我的服务器有“备份”文件。原始文件和首选文件位于另一台服务器上,重要的用户子集无法访问该服务器。
    $.ajax({
    url:'example.html',
    type:'HEAD',
    error: function()
    {
        //file not exists
        $('a').attr('href', 'backup.html');
    },
    success: function()
    {
        //file exists
        $('a').attr('href', ''example.html'');
    }
});