[JavaScript/HTML] noscript
Verfasst: 29.04.2012, 15:12
Ich bastel gerade an einer kleinen Webseite. Ich nutze framesets (Asche auf mein Haupt) und möchte die Frames per Javascript abhängig von der Fenstergröße des Browsers positionieren. Das klappt ganz gut obwohl ich die script-Sektionen außerhalb von head und body, sondern direkt im html-Bereich definiere (siehe HTML-Code).
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.
Wenn ich beispielsweise in der Zeile mit noscript für die Eigenschaft cols des frameset einen Wert von "0,500,*" eingebe, dann wird der mittlere Frame IMMER ganz links angezeigt. Auch wenn JavaScript aktiv ist.
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?
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?