2014-07-26 65 views
1

我使用的是MVC 5,當我嘗試點擊<a href="mailto:[email protected]"></a>時,所有瀏覽器都嘗試導航www.website.com/some/route/id/mailto:[email protected]Mailto鏈接導航到不同的網址

我不明白這種行爲,找不到任何有關此問題的人。

HTML:

<section> 
    <ul> 
     <li> 
      <a href="mailto:[email protected]"> 
       <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); 

回答

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);