2013-02-26 93 views
0

我有这个问题。我需要得到浏览器的窗口高度,但$(window).height()返回更大的数字,可能是文档高度。我一直在使用这个文档结构多年。有什么不对?

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs" dir="ltr"> 
<head> 
... 

会是什么原因?

感谢


编辑:

我发现其中的错误了。我的文本编辑器(PSPad)自动启用了在文件开头处插入UTF8 BOM的选项。这导致doctype之前的隐形字符。这让我很难过一次。但当时更明显。我花了两天的时间才找出错误的原因(页面上的图像消失了)以及webkit浏览器在主体中呈现头标记。一塌糊涂。所以现在它可以在jQuery的所有新版本中完美工作。感谢帮助。

+0

你真的有理由使用XHTML吗? – 2013-02-26 10:06:00

+0

你试过'$(document).height()'。如果没有,那就试试这个。 – 2013-02-26 10:11:24

+0

@GauravVashishtha我认为OP不希望文档的高度,但视窗的高度。 – 2013-02-26 10:12:59

回答

0

你应该得到的视口的高度,如果你使用一个更现代的标题:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="UTF8"/> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 

如果你真的需要XHTML,所以你应该使用这样的:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 

DOCTYPE元素必须成为你文档中的第一件事。

+0

是的,这是一个HTML5标头。但我读过严格的DOCTYPE就足够了。这已经被弃用了吗? – actimel 2013-02-26 10:09:03

+2

如果您在doctype之前添加了某些内容,可能会被忽略。我不认为你现在的声明是有效的。 – 2013-02-26 10:10:35

+0

我尝试了第一个现代标题。但我得到相同的结果!我不明白这一点。 – actimel 2013-02-26 10:30:24