webForumDet fria alternativet
Logga in / Bli medlem

setAttribute i MSIE?

JavaScript

10 svar · 423 visningar · startad av higa

Medlem sedan aug. 2000359 inlägg
Trådstart#1

Jag håller på och lägger upp ett bildarkiv på nätet och vill gärna att man ska kunna komma till nästa bild genom att trycka space a la ACDSee. Jag har testat att skapa en onkeydown på body genom att lägga in koden

document.body.setAttribute("onkeydown", "navi(event)")

i det externa javascriptet som ser till att bildens mått anpassas för att passa storleken på fönstret. Det funkar dock bara i Mozilla, i MSIE6 så anropas inte ens navi(event). Dock får jag korrekt svar av MSIE6 om jag skriver

alert(document.body.getAttribute("onkeydown"))

Behöver man "slå igång" msie på något sätt för att den ska uppdatera DOMen?
Funktionen navi() ser ut så här:

function navi(e)
{
	if(document.all) { key = event.keyCode}
	else if(parseInt(navigator.appVersion) >= 5) { key = e.which }
	if(key==32) {document.location = document.links.forward.href}
	if(key==8) { document.location = document.links.back.href}
}

Jag vill helst inte sätta onkeydown direkt i html-koden pga risken att användarna får javascript error om dom trycker space innan javascriptet har laddats.

Medlem sedan dec. 20025 483 inlägg
#2

Du får göra så här:

document.onkeydown = function(){
     navi(event);
};

:)

Medlem sedan aug. 2000359 inlägg
#3

Tackar!
Nu funkar det :)

Medlem sedan jan. 2002473 inlägg
#4

testar liknande sak men får det inte o funka...

newCheckButton = document.createElement("<input type='checkbox' name='parseMe' value='"+ elmLI.id +"' checked>");
	newCheckButton.onPress = function(){
     		inActiveParent(elmLI, 'objNode.id');
};

Med detta så funkar inte onPress, skriver jag ut med outerHTML

använder jag

newCheckButton.setAttribute("onPress","inActiveParent(this, '"+ objNode.id +"')");

så ser det rätt ut med outerHTML men functionen triggas ändå inte. vad gör jag för fel egentligen ?

Medlem sedan jan. 2002473 inlägg
#5

dethär är högst skumt.. använder jag
newCheckButton.setAttribute("onClick",inActiveParent('this', objNode.id ));
så körs functionen direct, men den funkar inte sedan när jag klickar på kryssrutan.

Medlem sedan dec. 20025 483 inlägg
#6

Vad är onpress för händelse? Fungerar det bättre om du använder onclick istället?

;)

Medlem sedan jan. 2002473 inlägg
#7

haha, sant,,
ändra men har fortfarande samma fel.

när objectet (createElement) skapas så körs funktionen, och det vill jag ju inte.
Sedan när jag klickar på kryssrutan så funkar det inte alls.

Medlem sedan dec. 20025 483 inlägg
#8

Du använder createElement() på ett felaktigt sätt:

var newCheckButton = document.createElement("input");

newCheckButton.setAttribute("type", "checkbox");
...

newCheckButton.onclick = function() {
    ...
}

[[b]element[/b]].appendChild(newCheckButton);

:)

Medlem sedan jan. 2002473 inlägg
#9

vidarefrågning då...

man kan använda sig utav
newCheckButton.attachEvent('onclick', inActiveParent);
men då kan jag inte skicka med några värden (behöver ha med 2 värden)... hur löser man detta då???

Medlem sedan jan. 2002473 inlägg
#10

tack peter,, detdär funkar ju helt grym ;D wieeee,
nu kan jag äntligen slänga ihop resten så får det bli en flaska vin i parken sedan o hoppas att det inte regnar :P

Medlem sedan dec. 20025 483 inlägg
#11

:birp

255 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)