[英]Mobile Redirect not working
I got this JavaScript code off of http://detectmobilebrowser.com/ , but it doesn't redirect my phone's browser to the proper page. 我从http://detectmobilebrowser.com/获得了此JavaScript代码,但没有将手机的浏览器重定向到正确的页面。 I put it in the
index.htm
file, which should branch off to main.htm
or miniMain.htm
depending on the browser using it, but it always goes to main.htm
我将其放在
index.htm
文件中,该文件应根据使用它的浏览器分支到main.htm
或miniMain.htm
,但它始终转到main.htm
function mCheck(a, mobilePage, page) {
if (/android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|opera mobile|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4)))
window.location = mobilePage
else
window.location = page;
}
mCheck(navigator.userAgent || navigator.vendor || window.opera, "miniMain.htm", "main.htm");
So, you should try setting absolute URIs on window.location instead of relative ones: 因此,您应该尝试在window.location上设置绝对URI,而不是相对的:
window.location='http://example.com/mypage.html'
You can also set the Location object's href property: 您还可以设置Location对象的href属性:
window.location.href='http://example.com/mypage.html'
However, what I would recommend for detecting mobile devices is a server-side solution, because you just can't rely on JS being available/turned on for redirects. 但是,我建议检测移动设备的方法是服务器端解决方案,因为您不能仅依靠JS的可用/打开进行重定向。 If you have PHP, the best solution I've found, and used in production sites, is this php script: http://detectmobilebrowsers.mobi (note the trailing
s
and .mobi
as compared to the site where you got your script). 如果您有PHP,那么我找到的并在生产站点中使用过的最佳解决方案就是该php脚本: http : //detectmobilebrowsers.mobi (请注意,跟在末尾的
s
和.mobi
相比,该目录与您获取脚本的站点相比) 。 If you wanted to write this in a server-side language (apache, node.js, nginx, asp, whatever) you could try some of the scripts on the site you originally visited ( http://detectmobilebrowser.com ), though I've never tried those and can't vouch for efficacy. 如果您想使用服务器端语言(apache,node.js,nginx,asp等)编写此代码,则可以尝试在最初访问的网站( http://detectmobilebrowser.com )上使用一些脚本。从未尝试过这些,也无法保证疗效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.