A AnnelieT Medlem sedan apr. 2005 53 inlägg Frågan 1 sep. 2005 10:59 #1 Hej!
Nya problem....Jag har sidor som jag vill att om de öppnas separat utanför min indexsidas iframe så ska det hamna rätt när det använder returnlänken. Tex om sidan Patterns öppnas, och de klickar på länken Return to menu PhotoImpact, så ska photoimpactsidan hamna inom denna ram ("indexeng.html" "iframe2")
Jag har försökt med detta script:
http://www.webforum.nu/showthread.php?s=&postid=564308#post564308
Men har inte lyckas att få det att fungera, finns det någon vänlig själ här som har någon idé hur jag kan lösa detta?
P Peter S Medlem sedan dec. 2002 5 483 inlägg Hej!
Du får nog använda dig av querystrings. Med hjälp av spangos klass :
<a href="[b]http://hem.bredband.net/anneliesgrafiksida/indexeng.html?page=photoimpacteng.html[/b]">Return to menu PhotoImpact</a>
...
// indexeng.html
<iframe name="iframe2"></iframe>
<script type="text/javascript">
/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
=* Bibliotek för användning av *=*=
=*=*=*=*=* frågesträngar *=*=*=*=*=
=*=*=*=* Skrivet av spango *=*=*=*=
=*=*=* <gustaf-c@dsv.su.se> =*=*=*=
=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
function QueryString(){
this.values = {};
this.queryString = "";
if(arguments.length == 0)
this.queryString = location.search?location.search:"";
else // hade argument
this.queryString = arguments[0];
if(this.queryString.indexOf("?") == 0)
this.queryString = this.queryString.substring(1);
var pairs = this.queryString.split("&");
for(var i in pairs){
pairs[ i] = pairs[ i].split("=");
for(var j in pairs[ i]) // avkoda URL
pairs[ i][j] = unescapePlus(pairs[ i][j]);
var key = pairs[ i][0];
var value = pairs[ i][1];
if(this.values[key]){ // finns redan
if( (typeof this.values[key]) == (typeof []) ){ // fler finns redan
this.values[key] = this.values[key].push(value); // appendera
} /* if array */ else if( (typeof this.values[key]) == (typeof "string")){
this.values[key] = [this.values[key], value]; // skapa ny array
} else this.values[key] = value;
} else { // finns inte
this.values[key] = value;
} // if this.values[key]
} // for pairs
} // function QueryString
function qsGet(key){
var alt ="";
if(arguments.length == 2)
alt = arguments[1];
return this.values[key]? this.values[key] : alt;
}
function qsToString(){
return this.queryString;
}
QueryString.prototype.get = qsGet;
QueryString.prototype.toString = qsToString;
function unescapePlus(str){ // unescape med plustecken
str = globalReplace(str, "+", " ");
return unescape(str);
}
// I Opera 5 funkar inte String.replace av någon konstig
// anledning, så vi får lov att använda en egen funktion.
function globalReplace(str, what, withWhat){
var tmp = "";
while(str.length != 0)
if(str.indexOf(what) == 0){
tmp += withWhat;
str = str.substring(what.length);
} else {
tmp += str.charAt(0);
str = str.substring(1);
}//else
return tmp;
}//globalReplace
var page = new QueryString().get("page");
if (page.length > 0){
window.frames["iframe2"].location.href = page;
}
</script>
A AnnelieT Medlem sedan apr. 2005 53 inlägg Hej igen!
Får det inte att fungera, mer än att indexsidan kommer fram, men sidan photoimpacteng.html hamnar inte i iframen.
Har lagt upp sidorna i en testfolder:
http://hem.bredband.net/anneliesgrafiksida/test/photoimpact/patterns/patterneng.html
http://hem.bredband.net/anneliesgrafiksida/test/indexeng.html
P Peter S Medlem sedan dec. 2002 5 483 inlägg Skriptet skall ligga direkt efter <iframe>-taggen:</iframe><script....
Alternativt:
window.onload = function(){
var page = new QueryString();
if (page.length > 0){
window.frames["iframe2"].location.href = page;
}
}
P Peter S Medlem sedan dec. 2002 5 483 inlägg En annan sak jag lade märke till, är att du har lagt </head> innanför <script>.
A AnnelieT Medlem sedan apr. 2005 53 inlägg Jo, jag upptäckte det, fort o fel. lol.
Jag får det fortfarande inte att fungera, nu ligger scriptet i inom iframe2. Klickar man på tillbaka länken, så kommer indexsidans startsida fram, men ingen photoimpactsida i iframe2.
Likaså upptäckte jag att om man går via menyn till PhotoImpact och klickar på Stained Glass Patterns och vidare på tillbakalänken, så hamnar hela indexsidan i iframet.
Fattar nada! :q
P Peter S Medlem sedan dec. 2002 5 483 inlägg :bire
Du fick nästan till det. JavaScript-koden skall ligga efter <**/**iframe>. Men vi gör så här istället: vi placerar all JS-kod i en separat fil och länkar in den.
I den bifogade .zip-filen finns en .js-fil dom du lägger i samma mapp som indexeng.html, och en .html-fil (indexeng.html) som du ersätter dess namne med.
A AnnelieT Medlem sedan apr. 2005 53 inlägg Ursäkta, hade glömt att tömma offlineinnehållet!
Det funkar att gå från patternsidan, till photoimpact med indexsidan framme, men inte via menyn till PhotoImpact - Stained Glass Patterns och vidare på tillbakalänken, så hamnar hela indexsidan i iframet.
P Peter S Medlem sedan dec. 2002 5 483 inlägg Testa att lägga till target="_top" i länken.
A AnnelieT Medlem sedan apr. 2005 53 inlägg Det fungerar!!!! :D Tack så jättemycket för all hjälp!
P Peter S Medlem sedan dec. 2002 5 483 inlägg Kul!
Glöm inte att använda funktionen acceptera som slutgiltigt svar på det inlägg som löste ditt problem.
A AnnelieT Medlem sedan apr. 2005 53 inlägg Nä, jag bara skulle ge dig chansen till ett inlägg till. lol.
P Peter S Medlem sedan dec. 2002 5 483 inlägg Den tackar man för! Se nu till att markera det svar som löste ditt problem. ;)