WPF WebBrowser内容大小

时间:2011-05-17 02:49:05

标签: wpf browser

我查看了所有相关问题,但无法得到答案。

如何在WPF中获取WebBrowser控件的当前内容大小?

1 个答案:

答案 0 :(得分:4)

要确定浏览器窗口的实际大小(使用javascript),请使用以下属性:

Internet Explorer中的

(向后兼容模式):

document.body.offsetWidth, document.body.offsetHeight
Internet Explorer中的

(标准模式,document.compatMode =='CSS1Compat'):

document.documentElement.offsetWidth, document.documentElement.offsetHeight

在大多数其他浏览器中:

window.innerWidth, window.innerHeight
The following code sets the variables winW and winH to the actual width and height of the browser window, and outputs the width and height values. If the user has a very old browser, then winW and winH are set to 630 and 460, respectively.

var winW = 630, winH = 460;
if (document.body && document.body.offsetWidth) {
 winW = document.body.offsetWidth;
 winH = document.body.offsetHeight;
}
if (document.compatMode=='CSS1Compat' &&
    document.documentElement &&
    document.documentElement.offsetWidth ) {
 winW = document.documentElement.offsetWidth;
 winH = document.documentElement.offsetHeight;
}
if (window.innerWidth && window.innerHeight) {
 winW = window.innerWidth;
 winH = window.innerHeight;
}

document.writeln('Window width = '+winW);
document.writeln('Window height = '+winH);

在您的浏览器中,此代码会生成以下输出:

Window width = 1280
Window height = 675

注意:

  1. 如果上面的代码在框架或iframe中执行,它将为您提供框架的宽度和高度。
  2. 计算出的宽度和高度不包括标题栏,菜单栏,状态栏或工具栏 - 但可能包括水平和垂直滚动条(如果有)。
  3. 使用document.body.offsetWidth和offsetHeight的代码应在浏览器解析标记后执行。
  4. 如果用户调整浏览器窗口的大小,您可能需要重新计算宽度和高度(使用window.onresize来执行此操作)。
  5. 同样,如果用户放大(或缩小),您可能还需要重新计算宽度和高度。