我有两个网站,一个用于移动设备,另一个用于桌面设备。这两个网站都是使用角度构建的django应用程序。桌面网站似乎有一个错误,其中生成的任何链接应该通过移动重定向并继续到桌面,但是,他们没有传递此信息,只有在链接上使用target="_blank"
时它才会重定向。
在controllers.js
中,我有以下内容:
$(document).ready(function(){
//showA();
mobileRedirect();
if($route.current.params.aId){
a.set($route.current.params.aId,$route.current.params.bId);
};
tryCookieLogin();
});
现在移动重定向基于:
function mobileRedirect() {
var viewport = getWindowSize();
console.log('viewport: '+viewport.width)
if (viewport.width<650){
//console.log('switch to mobile')
if(isA()){
var urlA = 'http://example.com/mobile/#/a/'+$route.current.params.aId+'/b/'+$route.current.params.bId;
}else{
var urlA = 'http://example.com/mobile/';
}
window.location.href = urlA;
}
}
和getWindowSize:
function getWindowSize() {
var w = window,
d = document,
e = d.documentElement,
g = d.getElementsByTagName('body')[0],
x = w.innerWidth || e.clientWidth || g.clientWidth,
y = w.innerHeight || e.clientHeight || g.clientHeight;
$scope.windowWidth
return { width: x, height: y };
}
那么为什么如果我创建一个使用target="_blank"
的链接,无论屏幕大小如何,它都会重定向到移动设备?不使用target
的链接可以正常工作吗?
答案 0 :(得分:0)
getWindowSize()函数返回窗口的宽度和高度(而不是设备屏幕的宽度)。
因此,如果在桌面上使用target =“_ blank”创建一个新窗口并且宽度小于650px,则会受到移动重定向的影响。