我正在使用MVC 5,当我尝试点击<a href="mailto:some@email.com"></a>
时,所有浏览器都会尝试导航www.website.com/some/route/id/mailto:some@email.com
。
我不明白这种行为,也无法找到有关此问题的人。
HTML:
<section>
<ul>
<li>
<a href="mailto:some@email.com">
<div class="social-icon mailto"></div>
</a>
</li>
</ul>
</section>
也许这是干扰:
app.click_handler = function (e) {
if (!GLOBALS.SUPPORT.PUSH_STATE)
return true;
var url = $(this).attr('href'),
title = $(this).attr('title');
if (url.match(/:\/\//)) {
return true;
}
if (url === '#') {
return false;
}
e.preventDefault();
GLOBALS.VALUES.CURRENT_ELEMENT = $(this);
History.pushState({}, title, url);
};
$(document).on('click', 'a', app.click_handler);
答案 0 :(得分:1)
该代码似乎会干扰链接,但允许其中包含://
的代码或仅仅#
的代码。
所以你也可以添加另一张支票
if (url.match(/^mailto:/)){
return true;
}
所以它变成了
app.click_handler = function (e) {
if (!GLOBALS.SUPPORT.PUSH_STATE)
return true;
var url = $(this).attr('href'),
title = $(this).attr('title');
if (url.match(/:\/\//)) {
return true;
}
if (url.match(/^mailto:/)) {
return true;
}
if (url === '#') {
return false;
}
e.preventDefault();
GLOBALS.VALUES.CURRENT_ELEMENT = $(this);
History.pushState({}, title, url);
};
$(document).on('click', 'a', app.click_handler);