如何在jQuery中测试URL

前端之家收集整理的这篇文章主要介绍了如何在jQuery中测试URL前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个URL,我想在 FancyBox(或任何其他叠加类型弹出窗口)中打开.我不知道URL是否好,所以我想测试一下.如果无效 – 我不会将fancybox插件附加到该特定URL,它将只是一个常规链接.如何在插入插件之前测试URL?尝试做类似的事情:
$("a.overlay").each(function() {
    var xhr = $.get(this.href,function(data,status) {
        // never executed in case of a Failed request
    });
    if (xhr.status && xhr.status === 404)) {
        // not good,do nothing
    } else {
        // can attach plugin here
    }
});

问题是,xhr并不总是被定义,因为JS不等待请求完成.同样,我不能使用回调函数,因为它似乎没有执行,以防请求失败(我可以在Firebug中看到它,但这不是很有用).

谢谢,祝大家周末愉快.

解决方法

你可以这样做,虽然我会质疑为每个链接提出请求是多么明智….
$("a.overlay").each(function() {
    var $a = $(this);
    $.ajax({
        type: 'GET',url: this.href,success: function() {
            // attach plugin here
        },error: function() {
            // not good,log it
        }            
    });
});

如果您不打算对页面内容进行任何操作,可以使用“HEAD”切换“GET”以仅获取所请求页面标题,这样会更快并让您知道您想要的内容.

猜你在找的jQuery相关文章