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;
}
};
04-24 21:58