我有一个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
}
});
Run Code Online (Sandbox Code Playgroud)
问题是,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
}
});
});
Run Code Online (Sandbox Code Playgroud)
如果你不打算对页面的内容做任何事情,你可以用'HEAD'切换'GET',只获取所请求页面的标题,这样会更快,让你知道你想要什么.
| 归档时间: |
|
| 查看次数: |
13133 次 |
| 最近记录: |