建筑型专业网站有哪些,浙江响应式网站建设,营销网页设计公司,银川网站建设哪家优在做页面统计的时候遇到了两个问题#xff1a; 1.包含iframe的页面#xff0c;在IE下按后退按钮不能刷新主页面。隐藏Iframe的src是统计程序的url#xff0c;每点一次后退#xff0c;就会发出一次页面加载时间请求。 2.由js动态创建的img标签会发出两个http请求#xff0c…在做页面统计的时候遇到了两个问题 1.包含iframe的页面在IE下按后退按钮不能刷新主页面。隐藏Iframe的src是统计程序的url每点一次后退就会发出一次页面加载时间请求。 2.由js动态创建的img标签会发出两个http请求第一个请求在发出后就被aborted但实际上统计脚本收到了该请求造成数据重复入库。 针对第一个问题怀疑是IE针对iframe处理同firefox不同。后来查资料才知道IE会把iframe访问过的页面也记录进history点击后退按钮时其实是重新载入iframe中的url因此表面上看起来是主页面不能刷新其实隐藏的iframe是刷新了的因此会造成点后退按钮发出不希望的请求。 针对第二个问题IE处理动态创建的img在设置img.src时会发出图片请求因此把img.src放到appenChild方法之后设置就可以避免这种情况。 附iframe在不同浏览器下的表现 AJAX教程: 两种iframe的区别 (怎样控制浏览器的history) 浏览器history记录了我们访问的页面。当点击浏览器的后退或者前进按钮时候就会在history中记录页面之间进行跳转。有时候因为各种原因程序员需要控制什么页面被放进浏览器的history中哪些页面不放进去。把这种针对history的控制当做一种原型来看它可以被用在更加复杂的AJAX和DHTML应用中。在这里我会讲述两类iframe当你面临AJAX设计问题或者遇到这两类iframe引起的奇怪bug时这些知识将会非常有用。 有两类iframe一种是在HTML文档中静态存在的iframe 另外一种是在页面加载后动态创建的iframe 好了我们已经知道有两类iframe但是谁在意这个事实呢?但是不同的浏览器在是否将他们放入history的决策上有完全不同的表现 下面我们来看看真相。Firefox 如果iframe是静态存在在HTML中时iframe的任何src或者location改变都会被记录到浏览器history中。 如果iframe是在页面加载完成后动态创建的那么iframe的任何src或者location改变都不会被记录到浏览器history中。 IE: 两种iframe的src或者location改变都会被记录到浏览器history中。 Safari 两种iframe的src或者location改变都不会被记录。 通过下面两个例子可以看到我们的结论。两个例子我们都会动态改变iframe的location分别加载四个不同的页面。 下面我们看两个例子 在第一例中iframe是在HTML页面中静态存在的当改变几次iframe的location后在IE和Firefox的history中都记录了这几个页面地址。点击后退和前进按钮时iframe中加载的页面会改变。在第二例中iframe是页面加载完成后由js动态创建的。Firefox下只有主页面在浏览器history中而IE下不仅主页面而且iframe加载的所有页面都在history中。 注当一个iframe在HTML页面中静态存在时并且该iframe有初始化了的src属性如 那么改src指向的url不会被记录在浏览器history中只有iframe的src或location被成功改变后指向的url才会被记录。 因此我们可以使用这两类iframe的特殊行为来实现我们想要的效果。比如可以让通过CSS将iframe设置为不可见然后选择这两种iframe中的一种来决定是否让浏览器记录iframe加载过的页面url。 转载于:https://www.cnblogs.com/ranran/p/iframe_history.html