webForumDet fria alternativet

JS problem i firefox

9 svar · 474 visningar · startad av trendol

trendolMedlem sedan okt. 2002170 inlägg
#1

function products()
{
parent.mainFrame.location='a.html'
parent.leftFrame.location='b.html'
parent.topFrame.location='c.html'
parent.main.location='d.html'
}

..tycks inte fungera under firefox.
någon som kan ge förklaring varför? samtliga frames uppdateras; det syns bokstavligen när ramarna laddas om, men varken "a.html", "b.html", "c.html" eller "d.html" laddas in. vad är fel? någon?

missModestyMedlem sedan apr. 2005254 inlägg
#2

Det är skillnad på window.location och document.location. Den senare är "read-only" dvs. du kan bara läsa, inte ändra. Rätta mig om jag har fel.

trendolMedlem sedan okt. 2002170 inlägg
#3

Jag förstod nog inte riktigt vad du syftade på.
Vad ska jag alltså skriva för att detta skript ska fungera för IE, Netscape, Firefox och Safari?

Observera att det finns fler funktioner, dvs

function products()
function lists()
function blaha()

..osv

MatteMedlem sedan aug. 20002 975 inlägg
#4

Någon skillnad om du kör:

parent.mainFrame.location.href = 'a.html';

?

missModestyMedlem sedan apr. 2005254 inlägg
#5

Prova istället något i stil med:

parent.document.getElementById("mainFrame").src="a.html";
parent.document.getElementById("leftFrame").src="b.html";
parent.document.getElementById("topFrame").src="c.html";
parent.document.getElementById("main").src="d.html";
trendolMedlem sedan okt. 2002170 inlägg
#6

missModesty skrev:

Prova istället något i stil med:

parent.document.getElementById("mainFrame").src="a.html";
parent.document.getElementById("leftFrame").src="b.html";
parent.document.getElementById("topFrame").src="c.html";
parent.document.getElementById("main").src="d.html";

Denna kod fungerade inte i Firefox.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#7

Felet kan vara att en gammal sida ligger kvar i cachen? Lös med ett slumptal:

function products()
{
parent.mainFrame.location='a.html?rnd='+Math.random();
parent.leftFrame.location='b.html?rnd='+Math.random();
parent.topFrame.location='c.html?rnd='+Math.random();
parent.main.location='d.html?rnd='+Math.random();
}
missModestyMedlem sedan apr. 2005254 inlägg
#8

Nu har jag kollat upp och det stämmer att det skiljer sig mellan window.location och document.location som jag nämnde innan. document.location är "read-only".

http://www.jalix.org/ressources/internet/dom/_mozilla/html/dom_doc_ref25.html#1003796

Är det säkert att parent.document.getElementById("menu").src inte fungerade i Firefox? Det fungerade nämligen hos mig.

missModestyMedlem sedan apr. 2005254 inlägg
#9

Du kan ju alltid testa

function products() {
	if(document.getElementById) {
                       parent.document.getElementById("mainFrame").src="a.html";
                       parent.document.getElementById("leftFrame").src="b.html";
                       parent.document.getElementById("topFrame").src="c.html";
                       parent.document.getElementById("main").src="d.html";
        }
         else {
                    alert("getElementById funkar inte");
         }
}
missModestyMedlem sedan apr. 2005254 inlägg
#10

Jag har ingen webbläsare som inte klarar getElementById så jag kan inte testa hur man kommer åt att ändra då. Kanske någon annan här kan hjälpa till med det.

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