2016-04-29 110 views
0

也许这个问题是不是在这样的“问题/解决”的版本会发生什么,但我仍然好奇: 在JavaScript中,当我们让假想事件在触发事件

_addEvent(window,"resize", 
      function(){ 
       location.reload(); // needed to reload page when it is resized 
       //somefunctions 
      } 
     ); 

,并做一些风格配置与事件[在somefunctions部分],页面大小调整时,新的[resized]页面以某种方式继承以前修改的JavaScript和CSS,然后再次调整大小后去事件?

只是在页面调整大小时再次调整大小时,对DOM对象进入槽的阶段感到好奇。

真实世界示例:调整计算机上的浏览器窗口大小以适合屏幕的一半,然后再将其调整到全屏。

回答

0

调整页面大小时,页面内容不会被浏览器更改。窗口大小发生了变化,浏览器将在现有内容上再次运行布局,以决定应该在新大小的窗口中显示内容,然后触发resize事件。

如果resize处理程序对DOM进行了更改,那么浏览器将再次确定是否需要重新创建新布局,但这不会触发其他调整大小事件。

如果你正在做的调整大小处理(这听起来像的方式一可怕的想法)一location.reload(),那么你就装了一个全新的页面和新加载的页面只会加载到当前窗口的大小。除非用户再次更改窗口大小,否则新加载的页面将不会再有其他大小调整事件。

location.reload()不会从上一页继承cookie和localStorage之外的任何内容。内容从头开始重新加载(其中一些可能来自缓存),浏览器从头开始解析并重新开始新页面。这就像在浏览器中按F5来重新加载页面一样。

+0

感谢您的领导! :D我刚刚从一些代码复制,甚至没有注意到: 但如果我有一些div,这是在左侧的全屏视图和右侧的一半屏幕视图和更小的尺寸,所有这是由js(不包括CSS)是否仍然是相同的过程? – Danilo

+0

@达尼洛 - 同样的过程。无论你的JS在做什么,“resize”事件都会发生。您可以使用JS在“resize”事件中定位或调整元素的大小。这并没有改变任何关于resize事件。只有在调整包含窗口的大小时,才会调整大小事件。它与被更改的内容无关。 – jfriend00

+0

感谢一堆:D很酷的知道。 – Danilo