2
希望得到一些帮助或方向与几个JavaScript问题。客户端网站将通过CMS进行维护,我们需要检查可能添加的任何URL,如果它是外部的,则启动speedBump。我们确实需要有一些例外(白名单)。jQuery&twitter Bootstrap Modal
我们使用twitter bootstrap模态,并且存在一些当前代码无法预料的结果。
例如,在模式中继续按钮关闭对话框,而不是在确认时传递URL。如果URL被声明为http,则modal将关闭,如果它被声明为www,则会将URL附加到域(wierd)。同时寻找改进/扩展或为URL添加白名单的最佳方式,该功能应该被speedBump忽略。我确信有一个比我们有更好的方法。
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/
感谢马蹄寺,这似乎解决了模态的问题继续按钮没有通过URL。不解决http和www行为之间的问题,但这是一个开始,我很感谢帮助! – Zendiko