webForumDet fria alternativet

Bestämma onclick-händelse från javascript

1 svar · 212 visningar · startad av Peeer

PeeerMedlem sedan mars 20025 907 inlägg
#1

Någt luddig rubrik kanske.
Till saken, nedanstående javascript letar igenom alla länkar på en sida och bestämmer target på dem beroende på vad rel="" har för värde. Nu vill jag dessutom att de länkar som har rel="cal-popup" ska få onclick="eventwindow()". Gjorde ett halvtaskigt försök nedan, men oväntat nog fungerar det inte :OO
Går det att göra som jag tänkt, eller måste jag sätta onclick manuellt?

function LinkTarget() {
	if (!document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++) {
		var anchor = anchors[i];
		if (anchor.getAttribute("href")){
			switch(anchor.getAttribute("rel")){
				case "external":
					anchor.target = "_blank";
					break;
				case "cal-popup":
					anchor.target = "event";
					[b]anchor.onclick ="eventwindow()"; [/b]
					break;
			}
		}
	}
}
PeeerMedlem sedan mars 20025 907 inlägg
#2

Läste precis igenom mitt inlägg och såg "getAttribut", borde det inte finnas motsatsen också tänkte jag och googlade fram att så var fallet. Således fungerar det nu - nästan. Nedstående kod fungerar fint i mozilla firebird, men i IE så öppnas länken i ett "normalt" fönster. Workaround någon?

function LinkTarget() {
	if (!document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++) {
		var anchor = anchors[i];
		if (anchor.getAttribute("href")){
			switch(anchor.getAttribute("rel")){
				case "external":
					anchor.target = "_blank";
					break;
				case "cal-popup":
					anchor.target = "event";
					anchor.setAttribute("onclick","eventwindow()");
					break;
			}
		}
	}
}

function eventwindow()
{
	window.open('','event','toolbar=no,location=no,directories=no,scrollbars=yes,status=no,menubar=no,resizable=no,width=215,height=200,top=10,left=10');
}

/r Mer googlande :e
Byt ut anchor.setAttribute("onclick","eventwindow()"); mot
anchor.onclick=eventwindow; så fungerar det!
(Kul att svara på sina egna frågor :OO)

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