问题:

1. 页面中存在一个选项卡控件,选项卡里面是IFrame,页面初始显示时有纵向滚动条出现

2. 来回切换选项卡一次,原来选项卡页面的滚动条居然消失了!!

3. 奇怪的时,此时在选项卡页面内滑动鼠标滚轮,还是能够上下滚动页面的

页面打开时的样子:

来回切换一次选项卡后的样子:

奇怪的是,此时鼠标滚动还能上下滚动页面:

当然首先怀疑的就是自己写的代码问题,但是查了一遍居然毫无头绪。在此期间我们还发现如下问题:

1. FineUIPro从最新版v3.3,到之前v3.2,v3.1,v3.0…. 无一例外都有这个问题。这就有点不可思议了,我们开源版有 1300 多位捐赠用户,专业版有 100 多个企业客户,如此明显的一个BUG不可能这么多版本都没有被发现!!

假设之前的版本根本就没有这个问题,那么就是浏览器版本升级引入的BUG了。

2. 在Firefox,Edge,IE11,IE10,IE9网赚项目,IE8下测试都没有这个问题,只有Chrome下才出现问题!!

由于,我们不得不怀疑是新版 Chrome 引入的BUG,为了验证这个想法,我们需要一个非常简单的可重现例子。

验证问题

由于FineUIPro本身的客户端代码还是很复杂了,为了避免其他代码的影响,我们需要一个可重现的简单的例子:

页面一:

<html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>
    </title></head><body>
    <input type="button" value="页面二" onclick="document.getElementById('frame1').style.display = 'block'; document.getElementById('frame2').style.display = 'none';" />
    <input type="button" value="页面三" onclick="document.getElementById('frame1').style.display = 'none'; document.getElementById('frame2').style.display = 'block';" />
    <div style="border:solid 1px red;width:400px;height:200px;">
        <iframe id="frame1" style="width:100%;height:100%;border:none;" src="./page2.html"></iframe>
        <iframe id="frame2" style="width:100%;height:100%;border:none;display:none;" src="./page3.html"></iframe>
    </div></body></html>

这个页面代码非常简单,两个按钮,两个IFrame谷歌浏览器极速模式,默认显示第一个IFrame,通过按钮来切换两个IFrame的显示。

页面二:

<html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>
    </title></head><body>
    page2</body></html>

页面三:

<html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>
    </title></head><body>
    page3    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
    page3</body></html>

下面分别在不同浏览器下运行效果:

Chrome55.0.2883.75

谷歌浏览器模式怎么改兼容模式_谷歌浏览器模式怎么改模式_谷歌浏览器极速模式

FireFox 50.0.2

谷歌浏览器极速模式_谷歌浏览器模式怎么改模式_谷歌浏览器模式怎么改兼容模式

Edge

谷歌浏览器模式怎么改兼容模式_谷歌浏览器模式怎么改模式_谷歌浏览器极速模式

IE11

毫无疑问,这个是Chrome的BUG,那么到底是从哪个版本开始才出现的呢,这个就不好追踪。

我们也没有那么多精力把每个Chrome版本都测试下,所以就安装了两款国内的双核浏览器,分别用Chrome内核测试:

第一款产品是 360安全浏览器,极速模式下 Chrome 版本是 45,比较老,正好用来测试:

谷歌浏览器极速模式_谷歌浏览器模式怎么改兼容模式_谷歌浏览器模式怎么改模式

哈哈,看来 Chrome v45 还没有这个BUG,这就好办谷歌浏览器极速模式,说明这个BUG是Chrome新版才引入的!!

第二款产品是 QQ 浏览器,Chrome内核是 53

谷歌浏览器极速模式_谷歌浏览器模式怎么改兼容模式_谷歌浏览器模式怎么改模式

看来 Chrome 53 版本已经引入了这个BUG。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注