【发布时间】:2012-08-14 08:23:05
【问题描述】:
我有一个链接到另一个页面的按钮。在单击该链接之前,我想检查该页面当前是否返回错误或者它是否不存在。我该如何编码?这可能吗?如果链接不存在或返回错误,我想禁用链接。
【问题讨论】:
标签: javascript jquery html
我有一个链接到另一个页面的按钮。在单击该链接之前,我想检查该页面当前是否返回错误或者它是否不存在。我该如何编码?这可能吗?如果链接不存在或返回错误,我想禁用链接。
【问题讨论】:
标签: javascript jquery html
您可以使用 ajax 加载页面,然后解析它以查看是否有错误,然后再重定向用户。我还会向用户说明链接为什么不起作用。
【讨论】:
请注意,我会在服务器端执行此操作。但是,由于您的标签与 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');
【讨论】:
正如有人问的那样,您使用的服务器端编程语言是什么?
在此处查看答案:How to get status code of remote url using Javascript/Ajax but NOT using jQuery?。与此相同的问题,答案涵盖所有基础。
【讨论】:
点击每个请求时的 Ajax,即使它是 HEAD 请求(您通常应该使用它来测试 url 的存在,因为这就是 HTTP 动词首先存在的原因),这让我觉得这是一个非常糟糕的主意,即使您可以克服可能无法克服的跨域问题(除非您涉及由 ajax 调用的某种服务器端检查)。现在,我想你也许可以在某个地方保存响应,这样就不会重新检查链接(在客户端或服务器端),但这仍然让我觉得这是一个非常复杂的解决方案,通常不会需要解决。
【讨论】: