mobile sui 框架裏面的a本身都綁了了一個ajax方法,ajax只能處理同域,跨域就會出現問題 ,所以mobile sui 中的a如果是外鏈的話就會出現加載失敗的提示,這種明顯的bug,讓用戶很詫異。於是就找到 mobile sui的手冊。上面有個路由的說法,處理外鏈的方法有兩種,代碼如下。在a的href 後面加external 就可以 。
Router默認開啓,會自動攔截所有鏈接的Touch行爲,如果希望一個鏈接走瀏覽器原生跳轉而不使用router,可以在鏈接上增加 class="external"
或者自定義屬性,如 <a href="xxx" external>xxx</a>
.
其實我第一次試了下面這個方法,沒有成功,不知道爲什麼。沒有執行我寫的js
如果需要禁用路由功能,那麼可以在 zepto 之後, msui 之前使用 script $.config = {router: false}
來禁用.
如只需禁用部分鏈接,除了使用external
外,還可用自定義動態過濾器$.config.routerFilter = function($link) {}
,實參 $link
是當前點擊的鏈接,返回 false 表示不使用路由功能,返回 true 表示進入路由處理,參考初始化,示例如下:
$.config = {
// 路由功能開關過濾器,返回 false 表示當前點擊鏈接不使用路由
routerFilter: function($link) {
// 某個區域的 a 鏈接不想使用路由功能
if ($link.is('.disable-router a')) {
return false;
}
return true;
}
};