關於 mobile sui a外鏈 老是出現加載失敗的解決辦法

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;
        }
    };
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章