Nun funktioniert das ganze natürlich nur wenn JavaScript verfügbar ist. Daher habe ich eine noscript-Sektion eingefügt, in der das frameset einfach mit einer festen Anordnung eingefügt wird.
Mein Problem ist nun, dass der Inhalt von noscript scheinbar immer verarbeitet wird. Ob JavaScript nun aktiv ist oder nicht.
Code: Alles auswählen
<html>
<head>
<title>Blub</title>
<script language="javascript" type="text/javascript">
<!--
window.onresize = function(event) {
location.href = location.href;
}
function getSize() {
var myWidth = 0, myHeight = 0;
if( typeof( window.innerWidth ) == 'number' ) {
//Non-IE
myWidth = window.innerWidth;
myHeight = window.innerHeight;
} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
//IE 6+ in 'standards compliant mode'
myWidth = document.documentElement.clientWidth;
myHeight = document.documentElement.clientHeight;
} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
//IE 4 compatible
myWidth = document.body.clientWidth;
myHeight = document.body.clientHeight;
}
return [ myWidth, myHeight ];
}
-->
</script>
<style type="text/css">
frame
{
margin: 0 0 0 0;
left: 0;
top: 0;
right: 0;
bottom: 0;
}
</style>
</head>
<script language="javascript" type="text/javascript">
<!--
var size = getSize();
var width = (size[0] - 500) / 2;
document.writeln('<frameset framespacing="0" border="false" frameborder="0" cols="' + width + ',500,*">');
-->
</script>
<noscript><frameset framespacing="0" border="false" frameborder="0" cols="200,500,*"></noscript>
<frame name="empty" src="empty.html" scrolling="no" />
<frameset framespacing="0" border="false" frameborder="0" rows="240,*">
<frame name="header" src="top.html" scrolling="no" />
<frameset framespacing="0" border="false" frameborder="0" cols="*,120">
<frame name="main" src="home.html" />
<frame name="menu" src="menu.html" />
</frameset>
</frameset>
<frame name="empty" src="empty.html" scrolling="no" />
</frameset>
</html>
Nehme ich den Inhalt von noscript raus, dann geht es mit aktiviertem JavaScript wie gewünscht.
Aber auch das Aktivieren und Deaktivieren von JavaScript im Browser (ich nutze Firefox 11.0) zeigt eine Wirkung. Und zwar verändert sich die BREITE des mittleren Frames, die Position jedoch nicht.
Wenn es nun php-Code im noscript-Bereich wäre, würde ich es ja verstehen (darum drehen sich auch alle Fragen in dieser Richtung, die so bei Google auffindbar waren), aber das ist ganz normales HTML da drin.
Hat da jemand eine Idee? Ist es ein Browserbug? Hab ich was übersehen?