1

我正在使用一个函数来在打开弹出窗口时调整窗口大小。它应该计算表格的坐标并根据它打开弹出窗口。(避免弹出窗口太小而需要使用滚动)。

问题是,当我在本地环境中测试它时,它工作正常,但是当我在另一个环境中测试它时,它似乎没有被应用(但我在同一台机器上使用相同的浏览器对其进行了测试。)你知道可能是什么问题吗?这是我调整大小的javascript函数:

function resizeWindowHeightForLittleRows(bottom){
    var tHeader = parseInt(document.getElementById('xtFzRow').style.height) + 
                  parseInt(document.getElementById('headerTable').clientHeight) +
                  28; /*Title Bar*/
    var isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
    var isFF = navigator.userAgent.indexOf("Firefox") > -1;
    var titleBarHeight = isChrome ? 40 : (isFF ? 55 : 20); 
    var tableHeight = parseInt(document.getElementById('xtFCInner').style.height) + titleBarHeight;
    var screenHeight = tHeader + tableHeight + bottom;
    var availHeight = screen.availHeight-100;
    window.resizeTo(screen.availWidth-100, screenHeight <= availHeight ? screenHeight : availHeight);

}

当我验证在这两种情况下都应用了相同的 javascript 并且我使用 sabe 浏览器在同一台机器上进行了测试时,我不知道什么配置(或其他)可能是导致此问题的原因。我可以尝试任何想法吗?

更新:问题是我的函数没有考虑是否显示 url bar

我需要在我的调整大小函数中添加验证是否正在显示 url 栏,以便在调整大小时获得正确的值

4

1 回答 1

1

在 FF 和 Chrome 中,您可以使用window.locationbar它来检查它是否可见,但这不适用于 IE。

我的建议是考虑在 JavaScript 函数中的 titlebarheight 上再增加 30px:

function resizeWindowHeightForLittleRows(bottom){
    var tHeader = parseInt(document.getElementById('xtFzRow').style.height) + 
              parseInt(document.getElementById('headerTable').clientHeight) +
              28; /*Title Bar*/
    var isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
    var isFF = navigator.userAgent.indexOf("Firefox") > -1;
    var titleBarHeight = isChrome ? 40 : (isFF ? 55 : 50);// adding 30px if it's not chrome or FF
    var tableHeight = parseInt(document.getElementById('xtFCInner').style.height) + titleBarHeight;
    var screenHeight = tHeader + tableHeight + bottom;
    var availHeight = screen.availHeight-100;
    window.resizeTo(screen.availWidth-100, screenHeight <= availHeight ? screenHeight : availHeight);
}
于 2013-04-17T03:22:35.700 回答