Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在iPad上锁定两个方向的全页宽度缩放?_Javascript_Ipad_Mobile Safari_Orientation Changes - Fatal编程技术网

Javascript 如何在iPad上锁定两个方向的全页宽度缩放?

Javascript 如何在iPad上锁定两个方向的全页宽度缩放?,javascript,ipad,mobile-safari,orientation-changes,Javascript,Ipad,Mobile Safari,Orientation Changes,我有一个固定宽度的页面(1040px)。出于各种原因,我需要在iPad上锁定缩放,以便在纵向和横向模式下显示页面的全宽 我在orientationchange上触发了一个事件处理程序,其中包括以下代码: if (isLandscape) { viewportMeta.content = 'width=1024,initial-scale=1.0,minimum-scale=1.0, maximum-scale=1.0'; console.log('--> landscape

我有一个固定宽度的页面(1040px)。出于各种原因,我需要在iPad上锁定缩放,以便在纵向和横向模式下显示页面的全宽

我在
orientationchange
上触发了一个事件处理程序,其中包括以下代码:

if (isLandscape) {
    viewportMeta.content = 'width=1024,initial-scale=1.0,minimum-scale=1.0, maximum-scale=1.0';
    console.log('--> landscape');
}
else {
    viewportMeta.content = 'width=768,initial-scale=0.75,minimum-scale=0.75, maximum-scale=0.75';
    console.log('--> portrait');
}
console.log('viewportMeta.content:');
console.log(viewportMeta.content);
这段代码对于初始页面渲染非常有效,即使我在页面渲染期间重新定向设备,但如果我在页面渲染后重新定向设备,它将失败得很惨:横向页面的缩放比例为0.75,纵向页面的缩放比例为1.0

我正在阅读(如何适用?)

不幸的是,当设备从纵向模式旋转到横向模式时,mobile safari中的一个bug,或者更可能是一个mis功能,会把这个问题搞砸。初始比例仅适用于整页加载


我需要做什么才能让mobile Safari尊重新的旋转缩放功能?我必须以某种方式强制重新渲染吗?

事实证明,我的问题的解决方案比我预期的要简单得多,而且我甚至不需要javascript。(我正在使用的现有代码提高了我的期望。)

我只需设置宽度,iPad就会自动进行缩放:

<meta id="viewport" name="viewport" content="width=1040,user-scalable=no">

奖励:我在Android上试过,但它不起作用。在这种情况下,需要在javascript中设置比例。

试试这个,然后在Android上检查