Javascript jQuery(document).width()不带';t包括「;“空白”;

Javascript jQuery(document).width()不带';t包括「;“空白”;,javascript,jquery,dom,Javascript,Jquery,Dom,考虑这两个功能: jQuery(document).width() jQuery(window).width() (1) 粗略地说,为您提供网页的宽度,(2)为您提供浏览器视口的宽度 但假设我们有一个800像素宽的网页 如果浏览器窗口宽度小于800像素,则方法(1)始终返回800。这很好 但如果浏览器窗口宽度大于800像素,则方法(1)返回的值与(2)相同,而不是800。因此,(1)的值取决于浏览器窗口。这不好 我的问题是:鉴于您无法控制浏览器窗口的大小,并且大多数情况下浏览器窗口的宽度大于网页

考虑这两个功能:

  • jQuery(document).width()
  • jQuery(window).width()
  • (1) 粗略地说,为您提供网页的宽度,(2)为您提供浏览器视口的宽度

    但假设我们有一个800像素宽的网页

    如果浏览器窗口宽度小于800像素,则方法(1)始终返回800。这很好

    但如果浏览器窗口宽度大于800像素,则方法(1)返回的值与(2)相同,而不是800。因此,(1)的值取决于浏览器窗口。这不好


    我的问题是:鉴于您无法控制浏览器窗口的大小,并且大多数情况下浏览器窗口的宽度大于网页的宽度,如何使用javascript/jquery获得真实的网页宽度?

    AFAIK,当浏览器无法在当前窗口宽度中呈现特定的块时,它会添加滚动条。 因此,如果你有一个固定宽度的主内容块(我建议你这样做),你可以得到它的宽度-它将始终保持不变

    <div id="content">
    <!-- Main block -->
    </div>
    
    JS:


    我真的不明白这个问题,但是有很多方法可以获得任何对象的宽度,下面是最常用的:


    试着在那把小提琴上添加一些标记,看看他们中是否有人得到了你想要的东西。

    当你说“真实的网页宽度”时,你到底指的是什么?你想要窗户的宽度吗?文档宽度?正文宽度?你有没有把jQuery('body').width()?更准确地说,我所说的“真实网页宽度”是指浏览器不添加水平滚动条的最小宽度。@Anji:有,我试过了。问题是,当增加浏览器窗口宽度时,body元素的宽度通常也会无限扩展。好的,谢谢,但下一个问题是:如何确定什么是“主内容块”?我事先不知道HTML内容。好吧,看看StackOverflow是怎么做的:所有主要内容都在body>container>content块中,它居中,固定宽度为960px!所以问题归结为:如何找到这个div,以便确定宽度?我需要一个通用的解决方案,因为我事先不知道HTML代码。这不是正确的通用解决方案。您可以获取页面上的所有div,并尝试查找具有最大宽度属性的div(这肯定是主块),但这是一个黑客行为。好的,但无论如何,谢谢。也许这在JS中是不可能的,所以我需要在一个假浏览器中呈现HTML并确定宽度。谢谢你的想法,但这并不能让我更接近解决方案。好吧,我真的还是不明白?你不想知道实际内容的宽度,或者换句话说,包含主要内容的元素,而不知道该元素是什么,它放在哪里,它的名称等等。你将很难弄清楚这一点,任何解决方案都很可能很慢,一点都不好。你到底需要它做什么,因为它不常用(我想我在任何地方都没见过),可能还有其他更好的解决方案。我理解你的困惑。但可以将其视为在随机网页上插入的跟踪脚本。它只需要计算出“主元素”的宽度,因为它需要知道鼠标相对于内容的位置。
    #content{
       width:800px;
       margin:0 auto;
    }
    
    $("#content").width()