缩放时,一帧隐藏另一帧

时间:2014-01-28 00:13:18

标签: html google-chrome frame frameset

我有以下带框架的html。在Chrome中,当我将浏览器缩放超过100%时,第二帧内容开始隐藏第一帧内容。作为要求,第一帧不应该有滚动。你有什么建议吗?它在IE上运行良好。

<!DOCTYPE HTML>
<html>
  <head>
<title>HHH</title>
  </head>
  <frameset rows="120,*" frameborder="0">
      <frame name="nav" src="/file1.pl" noresize="true" scrolling="No"
         frameborder="0">
      <frame name="gdl" src="/second.pl" scrolling="auto"
       frameborder="0">
  </frameset>
</html>

2 个答案:

答案 0 :(得分:0)

你可以看看这些:

Frameset not showing up in FireFox or IE. Fine in Chrome..?

Any way of using frames in HTML5?

另一个想法是改用。也许你不会有这样的问题。

我希望这些有帮助

答案 1 :(得分:0)

myFix.js

//fix webkit browsers
if ('WebkitAppearance' in document.documentElement.style) {
    document.onreadystatechange = function() {
        if (document.readyState != 'complete')
            return;

        var oldLevel = 1;
        //whether we're fixing 'rows' or 'cols'
        var checking = 'rows';
        var frameset = document.getElementById('set');
        //get the hard coded values from the html
        var values = frameset.getAttribute(checking).split(',');

        //make sure not to change any %'s or *'s
        var isPixels = new RegExp('[0-9]+');
        for (var index = 0; index < values.length; ++index) {
            if (isPixels.test(values[index]))
                values[index] = new Number(values[index]);
        }

        var zoomCheck = function() {
            //calculate zoom level
            var level = window.outerWidth / window.innerWidth;
            //if it hasn't changed, ignore
            if (oldLevel == level)
                return;

            var newValues = new Array(values.length);
            //copy each of the original values
            for (var index = 0; index < values.length; ++index) {
                newValues[index] = values[index];

                //fix the ones we are meant to
                if (values[index] instanceof Number)
                    newValues[index] *= level;
            }

            //apply the fix
            frameset.setAttribute(checking, newValues.join(','));
            oldLevel = level;
        };

        //periodically check
        setInterval(zoomCheck, 1000);
    };
}

your.html

<html>
    <head>
        <title>HHH</title>
        <script type="text/javascript" src="myFix.js"></script>
    </head>

    <frameset id="set" rows="200,*" frameborder="0" border="0" framespacing="0">
        <frame name="nav" src="/file1.pl" noresize="true" scrolling="No" frameborder="0">
        <frame name="gdl" src="/second.pl" scrolling="auto" frameborder="0">
    </frameset>
</html>