Wenn eine Unterseite geladen wird ohne Frameset => nachladen
Da Masta Ha
- browser
0 Tom Collins0 ptr
Hi,
wenn man z.b. bei einer suchmaschine was sucht kommt man auf eine seite, die meistens unterseite von einem frameset ist.
wie kann man es skripttechnisch lösen, dass dies erkannt wird und das frameset außenrum nachgeladen wird?
MfG
Andy
Hi Andy,
ganz einfach: auf Frames verzichten.
Sonst:
schreibe in die index.html folgendes Skript (muss natürlich angepasst werden):
function frami(){
document.writeln('<frameset frameborder="0" border="0" framespacing="0" rows="100,*">');
document.writeln('<frame name="oben" src="oben.htm" scrolling="no">');
document.writeln('<frameset framespacing="0" border="0" frameborder="0" cols="200,*">');
document.writeln('<frame name="menu" src="nav.htm" scrolling="auto" noresize>');
document.writeln('<frame name="Hauptframe" src="'+st+'" scrolling="auto" noresize>');
document.writeln('</frameset>');
document.writeln('</frameset>');
}
und in jede datei Deines Framesets:
if (parent.frames.length<=0){
st=document.URL;
if (navigator.appName=='Netscape') // ???
st=st.substr(st.lastIndexOf("/")+1,st.length); // ???
else
st=st.substr(st.lastIndexOf("\")+1,st.length); // ???
document.location.href="index.html"+"?"+st; // ???
}
Ich habe das irgend wann mal verwendet, und da hatte es funktioniert ;-)
Tom
Hi Andy,Hi Tom
meine Anregungen dazu:
schreibe in die index.html folgendes Skript (muss natürlich angepasst werden):
function frami(){
document.writeln('<frameset frameborder="0" border="0" framespacing="0" rows="100,*">');
document.writeln('<frame name="oben" src="oben.htm" scrolling="no">');
document.writeln('<frameset framespacing="0" border="0" frameborder="0" cols="200,*">');
document.writeln('<frame name="menu" src="nav.htm" scrolling="auto" noresize>');
document.writeln('<frame name="Hauptframe" src="'+st+'" scrolling="auto" noresize>');
document.writeln('</frameset>');
document.writeln('</frameset>');
}
Dieses Script macht erstmal gar nichts, solange die Funktion "frami()" nicht aufgerufen wird.
Außerdem müßte vor dem Aufruf der Funktion die Variable "st" definiert werden.
Diese dient dazu, eine vom unteren Skript ermittelte URL zu übergeben.
Von diesem wird die URL, die im Skript ermittelt wurde über die "search"-Eigenschaft des "location"-Objekts übergeben.
Könnte im oberen Skript mit:
var st=self.location.search;
abgefragt werden, enthält dann aber noch das "?"(Fragezeichen).
Das müßte man aber damit loskriegen:
var st=self.location.search.substring(1);
und in jede datei Deines Framesets:
if (parent.frames.length<=0){
st=document.URL;
if (navigator.appName=='Netscape') // ???
st=st.substr(st.lastIndexOf("/")+1,st.length); // ???
else
st=st.substr(st.lastIndexOf("\")+1,st.length); // ???
document.location.href="index.html"+"?"+st; // ???
}
gruß
ptr