当前位置:  开发笔记 > 编程语言 > 正文

如何在jQuery中测试URL

如何解决《如何在jQuery中测试URL》经验,为你挑选了1个好方法。

我有一个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中看到它,但这不是很有用).

谢谢,祝大家周末愉快.



1> Paolo Bergan..:

你可以这样做,虽然我会质疑为每个链接提出请求是多么明智....

$("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',只获取所请求页面的标题,这样会更快,让你知道你想要什么.

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有