希望在一些 javascript 问题上获得一些帮助或指导。客户端站点将通过 CMS 进行维护,我们需要检查任何可能添加的 URL,如果是外部的,则启动 speedBump。我们确实需要一些例外(白名单)。
我们正在使用 twitter 引导模式,当前代码有一些意想不到的结果。
例如,模式中的继续按钮关闭对话框,而不是在确认时传递 URL。如果 URL 被声明为 http,模式关闭,如果它被声明为 www,它将 URL 附加到域(奇怪)。还在寻找改进/扩展或添加应该被 speedBump 忽略的 URL 白名单的最佳方法。我确信有比我们现有的方法更好的方法。
jQuery(document).ready(function () {
// FIND EXTERNAL LINKS
$.expr[":"].external = function (a) {
// DO NOT INCLUDE THE FOLLOWING MATCHES: EMAIL LINKS, TELEPHONE LINKS, HOSTNAME
return !a.href.match(/^mailto\:/) && !a.href.match(/^tel\:/) && a.hostname != location.hostname
};
// ADD BOOTSTRAP DATA-TOGGLE ATTRIBUTE TO THE LINKS
$('a:external').attr('data-toggle', 'modal');
// ADD BOOTSTRAP DATA-TARGET ATTRIBUTE TO THE LINKS
$('a:external').attr('data-target', '#speedbump');
// ADD EXTERNAL LINK CLASS .ext_link FOR STYLING
$("a:external").addClass("ext_link");
// ADD THE LINK AND TITLE TO THE MODAL WINDOW
$(function () {
$('a.ext_link').click(function () {
var url = $(this).attr('href');
var title = $(this).attr('title');
$('#url_link').attr('href', url);
});
});
});
jsfiddle 上的当前代码和模态示例,供不介意查看的任何人使用:http: //jsfiddle.net/zendiko/TYAeD/