webForumDet fria alternativet

Problem med location.href för iframe

7 svar · 373 visningar · startad av haider

haiderMedlem sedan jan. 2003956 inlägg
#1

Tjena..

Jag har ett mycket underligt problem.
När jag skriver:

contence.location.href=(location.search.length>1)?location.search.substring(1):"sidor/xcellfitness.htm";

Så säger explorer att den inte kan indentifiera contence trots att jag har en iframe som heter så.

Så ser iframe-koden ut:

<iframe src="" name="contence" ....></iframe>

Jag vill allså byta ut src, med hjälp av ett skript.
Sidan finns på www.xcellfitness.com/main.htm

Som sagt, jag har provat på detta innan utan problem, men nu är det trouble visst...

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Finns iframen när koden exekveras? Om du kör scriptet direkt (ej via en länk eller onload, d.v.s. när allt är laddat) och iframen ligger efter scriptet i koden så kommer inte scriptet att fungera.

haiderMedlem sedan jan. 2003956 inlägg
#3

Ja, anropas från en extern JS fil.
Men den anropas från samma dokument som iframe finns i.

Är det inte märkligt?

JojoxxMedlem sedan juni 20004 308 inlägg
#4

Nja, det behöver inte vara så märkligt. iframen måste som sagt finnas vid det tillfälle när koden körs. Att scriptet är inlänkat från en .js-fil gör inte saken bättre.

Exempel:

<iframe name="contence"></iframe>
<script type="text/javascript">
contence.location.href="http://www.google.com";
</script>

Funkar!

<script type="text/javascript">
contence.location.href="http://www.google.com";
</script>
<iframe name="contence"></iframe>

Funkar inte!

Du kan även lösa det genom att köra koden onload:

window.onload=function(){
contence.location.href=(location.search.length>1)?location.search.substring(1):"sidor/xcellfitness.htm";
}
haiderMedlem sedan jan. 2003956 inlägg
#5

Jojoxx, jag har inte förklarat situationen riktigt noga.

En gång fick jag hjälp av dig ifråga om sidor som hamnat utanför sin frame, och hur jag kunde få dem på plats igen.

Skriptet jag fick av dig, funkade super, men å andra sidan, så hade den inget efter www.domän.se/

I detta fallet, så finns en sida också angiven, www.domän.se/main.htm

Detta tycks vara boven i ärendet.

Så här såg skriptet ut, som placerar dokumentet rätt:

window.onload=init;
function init(){
 content.location.href=(location.search.length>1)?location.search.substring(1):"content.htm";
}

Jag får erkänna att jag inte vet hur man tolkar content.location.href=(location.search.length>1)?location.search.substring(1):"content.htm"; men det funkar i alla fall.

Jag har även använt den i ett annat sammanhang, men där har jag skrivit

var contentz=(location.search.length>1)?location.search.substring(1):"content.htm";

Där jag använt contentz på detta sättet:

document.write('.... src="' + contentz + '"....');

Och då har det funkat bra med.
Så jag funderar nu, att om jag inte får rätt på det, så ska jag använda variabel-metoden, och ett skript som skriver in raden för iframen där iframen ska finnas, istället för att ha skrivit in iframe-raden redan från början.

Har jag förklarat bättre?
Säg till annars, om nåt ännu verkar oklart.

JojoxxMedlem sedan juni 20004 308 inlägg
#6

haidar skrev:

content.location.href=(location.search.length>1)?location.search.substring(1):"content.htm";

Detta är en villkorsstyrd tilldelning. Exempel;

idagardet=(month==12 && day==24)?"Julafton":"Inte julafton";

Först kommer alltså objektet vars värde skall tilldelas. Inom parentesen är uttrycket som står till grund för tilldelningen. Efter frågetecknet är värdet ifall uttrycket är sant och efter kolonet är värdet om uttrycket inte är sant.

location.search är query-delen av url'en, inklusive inledande "?", och .substring(1) tar ut värdet från 2'a tecknet (index 1) till sluten av strängen.

Lade upp ett litet exempel här:
http://www.jojoxx.net/wF/89043.html
http://www.jojoxx.net/wF/89043.html?http://www.yahoo.com

haiderMedlem sedan jan. 2003956 inlägg
#7

:e

Yes. Det är exakt så jag vill göra.
Men, hos mig tycktes det inte funka - ska kolla igenom min sida och jämföra med din kod.

Jag löste det med document.write('<iframe....' + variabel (som är src) ... ');

Men de enklaste lösningar är bäst, och http://www.jojoxx.net/wF/89043.html?http://www.yahoo.com är så enkel som det får lov att vara.

I'll be back :h

JojoxxMedlem sedan juni 20004 308 inlägg
#8

Ok :) Kolla så att du inte får scriptfel (från något annat script på sidan) så att scriptexekveringen avbryts.

130 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)