利用uaredirect.js实现手机访问PC网址自动跳转到移动端m网址

前端 · 2019-01-10 ·

用百度的uaredirect.js判断用户访问端实现网址的自动跳转

有的时候用户通过手机访问你的网址,如果呈现出来的是电脑端页面,用户体验及其不佳,因此这里介绍利用百度siteapp下的一款跳转的产品,提高用户体验。你可以用这款JS跳转到手机版,也可以跳转到任何你想跳转的位置。如果你的网站电脑端和移动端是公用的数据库,也可以一一对应跳转,提高用户体验。

uaredirect.js的代码如下

function uaredirect(f) {
	try {
		if (document.getElementById("bdmark") != null) {
			return
		}
		var b = false;
		if (arguments[1]) {
			var e = window.location.host;
			var a = window.location.href;
			if (isSubdomain(arguments[1], e) == 1) {
				f = f + "/#m/" + a;
				b = true
			} else {
				if (isSubdomain(arguments[1], e) == 2) {
					f = f + "/#m/" + a;
					b = true
				} else {
					f = a;
					b = false
				}
			}
		} else {
			b = true
		}
		if (b) {
			var c = window.location.hash;
			if (!c.match("fromapp")) {
				if ((navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i))) {
					location.replace(f)
				}
			}
		}
	} catch (d) {}
}

function isSubdomain(c, d) {
	this.getdomain = function(f) {
		var e = f.indexOf("://");
		if (e > 0) {
			var h = f.substr(e + 3)
		} else {
			var h = f
		}
		var g = /^www\./;
		if (g.test(h)) {
			h = h.substr(4)
		}
		return h
	};
	if (c == d) {
		return 1
	} else {
		var c = this.getdomain(c);
		var b = this.getdomain(d);
		if (c == b) {
			return 1
		} else {
			c = c.replace(".", "\\.");
			var a = new RegExp("\\." + c + "$");
			if (b.match(a)) {
				return 2
			} else {
				return 0
			}
		}
	}
};


使用方法,在你的head中嵌入这段代码 (大多数情况)

<script src="http://www.mla.xin/uaredirect.js" type="text/javascript"></script>
<script type="text/javascript">uaredirect("http://m.mla.xin");</script>

第二行的跳转参考这个就行了。将里面的网址改成你自己的。

ps:有的时候电脑端和移动端使用的是一个数据库,他们的网址存在一定的联系,为了再一次提高用户体验,可以将某个电脑端的网址跳转到它对应的移动端网址。

<script src="http://www.mla.xin/uaredirect.js" type="text/javascript"></script>
<script type="text/javascript">
var murl=window.location.pathname; //获取当前 URL 的路径部分。
uaredirect('http://m.mla.xin'+murl);
</script>
%