1

我有一个使用框架集的网页。

由于脚本和对象依赖性,我需要按特定顺序加载帧。

我已将此示例用作模板: JavaScript Source: Navigation: Frames Load Order

这会加载一个空页面来代替我最后需要加载的页面,然后在第一页加载后将其替换为正确的页面。

但是:我还需要使用浏览器的后退按钮。如果您在上面的链接中运行示例,让两个框架都加载,然后单击返回按钮,顶部框架恢复到临时空白页面。然后需要再次单击返回按钮以导航到框架集之前的页面。

有没有办法强制框架以特定顺序加载而没有此后退按钮行为 - 或强制后退按钮跳过空白页面?

这需要适用于 Internet Explorer 6 和 7,最好也适用于 Firefox 3。

4

3 回答 3

1

你在这篇文章中提到了很多......

这是一个遗留系统。框架集是必需的。

如果您正在使用旧系统,那么我认为您是时候接受框架集在浏览器的后退按钮方面的行为方式了。如果它确实是一个遗留系统,则无需修复此行为。如果它实际上不是遗留系统并且您需要解决此问题,则需要避免使用框架集。框架集已从 HTML 标准中弃用,不应使用。

于 2010-04-22T07:26:42.837 回答
0

为什么不按所需顺序使用三个 iframe,然后将它们调整大小/移动到适当的位置?

<iframe id="a1" src="page-to-load-first.htm"></iframe>
<iframe id="a2" src="page-to-load-second.htm"></iframe>
<iframe id="a3" src="page-to-load-third.htm"></iframe>
<script>
function pos(elem,x,y,w,h) {
   if (!elem.style) elem=document.getElementById(elem);
   elem.style.position='absolute';
   elem.style.top = y+'px';
   elem.style.left= x+'px';
   elem.style.width=w+'px';
   elem.style.height=h+'px';
}
window.onload = function() {
    window.onresize=function() {
        var w = window.innerWidth || document.documentElement.clientWidth;
        var h = window.innerHeight || document.documentElement.clientHeight;
        var w3 = w/3;
        var h2 = h/2;
        pos('a1',0,0,w3,h); /* left 1/3rd */
        pos('a2',w3,0,w3+w3,h2);
        pos('a3',w3,h2,w3+w3,h2);
    };
    window.onresize();
};
</script>
于 2008-11-16T16:43:09.860 回答
0

Build the frames themselves using JavaScript:

<html>
<head>
<script>
function makeFrame(frameName) {
    var newFrame = document.createElement('frame');
    newFrame.id=frameName;
    if(frameName=="B") {
        newFrame.onload=function() {makeFrame("C")};
        newFrame.src = 'http://www.google.com';
    }
    else {
        newFrame.src = 'http://www.yahoo.com';
    }
    document.getElementById('A').appendChild(newFrame);

}
</script>
</head>
<frameset name='A' id='A' rows="80, *" onload="makeFrame('B')"></frameset>
</html>
于 2008-11-14T21:05:15.307 回答