我提供了一个小部件,用户可以在其中存储他们创建的链接。
所以换句话说他们:
我想做的是当用户点击他们的链接时,确定链接是否存在(可能不在此域上,因此我可以看到具有AJAX的可预见问题)如果确实如此,则继续正常打开新窗口并以快乐的方式发送给他们。
但是,如果不是,我想生成一个类似于。的<< Growl Like'消息。
对不起链接不存在, 请验证您的链接。
我基本上需要在客户端验证链接存在的方法。这甚至可能吗?
答案 0 :(得分:2)
您可以使用jquery在所有链接上附加click()
事件处理程序,然后尝试在隐藏的iframe中加载URL,如果成功则在新窗口中打开链接。请注意,这是一种非常昂贵的链接检查方式。也许可以像HTTP头请求那样更聪明地完成。
修改强>
在这里找到解决方案(仅限普通javascript):HTTP HEAD Request in Javascript/Ajax?
function UrlExists(url)
{
var http = new XMLHttpRequest();
http.open('HEAD', url, false);
http.send();
return http.status!=404;
}
这里有一个jQuery解决方案:Ajax HEAD request via Javascript/jQuery
ajaxSizeRequest = $.ajax({
type: "HEAD",
async: true,
url: url,
success: function(message){
}
正如@Matt King指出的那些实际上是相当无用的跨域 - 在这种情况下,我会在你的应用程序中设置一个proxy.aspx页面,而不是你查询。然后,此代理必须在C#中执行HTTP HEAD请求,并将结果(成功/失败)返回给client / jQuery。