iOS Safari不会触发'旋转'事件

时间:2014-05-30 11:40:31

标签: javascript jquery ios safari

我在旋转设备时尝试了各种方法来触发事件。它适用于Android的所有浏览器。它适用于iOS上的所有浏览器,Safari除外。我已经尝试了1部iPhone和2部iPad,全部都在iOS7上,而且无法解决这个问题。

我试过了:

jquery的:

$( window ).resize(function() {

$(window).bind("resize", function(){


js:

document.addEventListener("orientationchange", updateOrientation);

window.onresize = function(event) {

没有运气,没有任何运气。它们都适用于所有浏览器,但在iOS Safari中失败。最令人遗憾的是,有时它会在20次旋转中发射一次或两次。其他时候,根本没有事件。到底是怎么回事?有人对此有经验吗?我做错了什么,或者这是一个奇怪的错误?

1 个答案:

答案 0 :(得分:2)

男孩,orientChange类型的支持在移动浏览器中显得超级狡猾。因此,为了避免担心,我只是遵循这个简单的保证方法,根本不依赖于该事件:

function findOrientation()
{
    if(window.innerHeight > window.innerWidth){
        return 'portrait';
    } else {
        return 'landscape';
    }
}

function checkOrientation() {   //to be run every X seconds by setInterval below
    var currentPortraitOrLandscape = findOrientation();
    if(currentLandscapeOrPortrait != window.landscapeOrPortrait) {
         doMyOrientationChangeCode();
         }
    }

window.portraitOrLandscape = findOrientation();

setInterval(checkOrientation, 800);  //check around once a second if they have reoriented