webForumDet fria alternativet

JS problem i firefox

JavaScript

9 svar · 475 visningar · startad av trendol

Medlem sedan okt. 2002170 inlägg
Frågan#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?

Medlem 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.

Medlem 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

Medlem sedan aug. 20002 975 inlägg
#4

Någon skillnad om du kör:

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

?

Medlem 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";
Medlem 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.

Medlem sedan aug. 20039 340 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();
}
Medlem 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.

Medlem 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");
         }
}
Medlem 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.

256 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)