6

我有一个链接到另一个页面的按钮。在单击该链接之前,我想检查该页面当前是否返回错误或者它是否不存在。我该如何编码?这可能吗?如果链接不存在或返回错误,我想禁用链接。

4

4 回答 4

3

您可以使用 ajax 加载页面,然后对其进行解析以查看是否有错误,然后再重定向用户。我还会向用户说明链接为什么不起作用。

于 2012-08-17T21:29:22.427 回答
3

请注意,我会在服务器端执行此操作。但是,由于您的标签与 jquery 相关,因此我发布了一个您可以尝试使用 jquery 的解决方案。

使用 jquery 你可以:

var link = $('#id_of_your_a_element');
$.ajax(
    url: link.attr('href'),
    error: function() { 
        link.hide();
    }
);

编辑

正如 ribot 所指出的,这个例子只是隐藏了链接。如果要禁用它,可以在用户单击链接时阻止默认行为:

link.click(function(e) {
    e.preventDefault();
});

或者只是删除 href 属性:

link.removeAttr('href');
于 2012-08-17T21:34:48.967 回答
2

正如有人问的那样,您使用的服务器端编程语言是什么,如果有的话?

在此处查看答案:如何使用 Javascript/Ajax 但不使用 jQuery 获取远程 URL 的状态代码?. 与此相同的问题,答案涵盖了所有基础。

于 2012-08-17T21:31:43.333 回答
1

单击每个请求的 Ajax,即使它是 HEAD 请求(这是您通常应该用来测试 url 的存在,因为这就是 HTTP 动词首先存在的原因),只是让我觉得这是一个非常糟糕的主意,即使您可以克服可能无法克服的跨域问题(除非您涉及由 ajax 调用的某种服务器端检查)。现在,我想你也许可以在某个地方保存响应,这样就不会重新检查链接(在客户端或服务器端),但这仍然让我觉得这是一个非常复杂的解决方案,通常不会需要解决。

于 2012-08-17T21:49:39.547 回答