Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.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 科尔多瓦:如何获得应用程序的宽度和高度?_Javascript_Android_Jquery_Cordova - Fatal编程技术网

Javascript 科尔多瓦:如何获得应用程序的宽度和高度?

Javascript 科尔多瓦:如何获得应用程序的宽度和高度?,javascript,android,jquery,cordova,Javascript,Android,Jquery,Cordova,我需要使用JavaScript为我的cordova android应用程序获取窗口的宽度和高度 我尝试了JQuery库中的$(window).width()和$(window).height(),但结果是喜怒无常的: 我正在Nexus7上测试,当我以纵向模式打开应用程序时,我得到宽度=600,高度=888 当我将设备旋转到横向并重新计算尺寸时,它们在本应交换时不会改变,当我将设备旋转回纵向时,我得到宽度=960,高度=528 我对这个输出感到非常困惑,它让我觉得我使用了错误的代码。我将非常感谢您

我需要使用JavaScript为我的cordova android应用程序获取窗口的宽度和高度

我尝试了JQuery库中的
$(window).width()和$(window).height()
,但结果是喜怒无常的:

我正在Nexus7上测试,当我以纵向模式打开应用程序时,我得到宽度=600,高度=888

当我将设备旋转到横向并重新计算尺寸时,它们在本应交换时不会改变,当我将设备旋转回纵向时,我得到宽度=960,高度=528

我对这个输出感到非常困惑,它让我觉得我使用了错误的代码。我将非常感谢您的帮助或建议

以下是获取屏幕尺寸的函数:

function getDimensions() {
    //Gets height and width of web browser
    var height = $(window).height(); 
    var width = $(window).width();

    //Stores dimensions in array of form [width,height] 
    var dimensions = [width,height];

    return dimensions;
}
这里是我在旋转后检查尺寸的地方:

function onOrientationChange() {
    var dimensions = getDimensions();
    console.log("rotation width " + dimensions[0] + " height " + dimensions[1]);
}
尝试: var w=窗内宽度; var h=窗内高度; 我知道这在web浏览器上有效

试试: var w=窗内宽度; var h=窗内高度; 我知道这在web浏览器上有效

您必须处理事件

当设备的方向发生更改时,将触发orientationchange事件

以及Window.orientation属性,该属性包含表示当前方向的数字(有关更多详细信息,请查看下图)

注意:window.orientation在桌面浏览器中返回未定义的。因此,请在模拟器或设备上进行测试

解决方案:

  • 将方向更改事件附加到全局窗口对象
  • 检查方向值,并在其中执行一些逻辑
  • window.addEventListener(“方向更改”,方向更改);
    函数方向更改(){
    开关(窗口、屏幕、方向){
    “景观小学”案例:
    //这里的函数是:getDimensions();
    打破
    案例“主要肖像”:
    //这里的函数是:getDimensions();
    打破
    违约:
    打破
    }
    }
    您必须处理事件:

    当设备的方向发生更改时,将触发orientationchange事件

    以及Window.orientation属性,该属性包含表示当前方向的数字(有关更多详细信息,请查看下图)

    注意:window.orientation在桌面浏览器中返回未定义的。因此,请在模拟器或设备上进行测试

    解决方案:

  • 将方向更改事件附加到全局窗口对象
  • 检查方向值,并在其中执行一些逻辑
  • window.addEventListener(“方向更改”,方向更改);
    函数方向更改(){
    开关(窗口、屏幕、方向){
    “景观小学”案例:
    //这里的函数是:getDimensions();
    打破
    案例“主要肖像”:
    //这里的函数是:getDimensions();
    打破
    违约:
    打破
    }
    
    }
    请发布您的代码好吗?我已经编辑了包含我的getDimensions()函数听起来像是在重画出现之前计算宽度和高度,从而在旋转之前计算窗口的宽度和高度。旋转后如何检测窗口重绘?编辑:在定向事件发生后,您是否尝试在回调中使用setTimeout进行检查?嗯……似乎还可以。我还在cordova应用程序中使用
    $(窗口)
    ,以获得高度和宽度。在哪里调用getDimensions?请发布您的代码好吗?我已经编辑了包含getDimensions()函数的函数听起来像是在重画出现之前计算宽度和高度,从而在旋转之前计算窗口的宽度和高度。旋转后如何检测窗口重绘?编辑:在定向事件发生后,您是否尝试在回调中使用setTimeout进行检查?嗯……似乎还可以。我还在cordova应用程序中使用
    $(窗口)
    ,以获得高度和宽度。你在哪里叫getDimensions?我对设备的方向不感兴趣。我只是想知道尺寸。您写道:“当我将设备旋转到横向并重新计算尺寸时,它们在本应交换时不会改变,而当我将设备旋转回纵向时,我得到的宽度=960,高度=528。”您必须检查每次方向更改时的尺寸,以获得正确的值。我尝试运行代码,但在“开关(e.orientation)”行--“无法读取未定义的属性“orientation”。我将其替换为window.screen.orientation。您也可以尝试。你是否将Croswalk绑定到你的应用程序中?我对设备定位不感兴趣。我只是想知道尺寸。您写道:“当我将设备旋转到横向并重新计算尺寸时,它们在本应交换时不会改变,而当我将设备旋转回纵向时,我得到的宽度=960,高度=528。”您必须检查每次方向更改时的尺寸,以获得正确的值。我尝试运行代码,但在“开关(e.orientation)”行--“无法读取未定义的属性“orientation”。我将其替换为window.screen.orientation。您也可以尝试。您是否将Croswalk绑定到应用程序中?