webForumDet fria alternativet

insertAdjacentText() och händelsehanterare

JavaScript

9 svar · 219 visningar · startad av m_soderlund

Medlem sedan sep. 20026 425 inlägg
Frågan#1

Jag använder insertAdjacentText() för att vid en onmouseover på en länk lägga till
en text. Länken ser ut så här:

<a href="kontakt.asp" id="k" onmouseover="s();">Kontakt</a>

Funktionen s() ser ut så här:

<!--
function s(){
k.insertAdjacentText('AfterEnd',' -->');
}
//-->

Vid en onmouseover skrivs mycket riktigt en liten textsnutt ut - men hur får jag bort den
textsnutten vid en onmouseout?? Jag får det i alla fall ej att fungera med ex.
onmouseout=";".

Tacksam för hjälp.

Medlem sedan dec. 20025 483 inlägg
#2

Om du vill att skriptet skall vara kompatibelt med andra webbläsare än Internet Explorer:

<script type="text/javascript">
<!--

function insertText(o,t){
	o.innerHTML = t;
};

//-->
</script>

...

<a href="" onmouseover="insertText(this,'Foo --&gt;')" onmouseout="insertText(this,'Foo')">Foo</a>

:)

Medlem sedan feb. 2003774 inlägg
#3

Enklast är att han ett element som man byter ut innehållet på. insertAdjacentText är IE specifikt och fungerar inte i andra browsers.

Exemplet här använder sig av innerHTML som inte tillhör standarden, men det stöds av alla browsers som implementerat DOM stöd (Safari, Mozilla, Netscape 6+, IE 5+, iCab etc)

<a href="#" onMouseOver="s(0);" onMouseOut="s(0);">1</a><span id="linkArrow_0"></span><br>
<a href="#" onMouseOver="s(1);" onMouseOut="s(1);">2</a><span id="linkArrow_1"></span><br>
<a href="#" onMouseOver="s(2);" onMouseOut="s(2);">3</a><span id="linkArrow_2"></span><br>

<script type="text/javascript">
function s(num)
{
	var linkArrow = document.getElementById("linkArrow_" + num);
	linkArrow.innerHTML = (linkArrow.innerHTML == "")? "--&gt;":"";
}
</script>
Medlem sedan sep. 20026 425 inlägg
#4

Tack så mycket!
Men Peter S, du glömde id="o" i din länk ;):

<a href="kontakt.asp" [red]id="o"[/red] onmouseover="insertText(this,'Kontakt --&gt;')" onmouseout="insertText(this,'Kontakt')">Kontakt</a>
Medlem sedan dec. 20025 483 inlägg
#5

Nej, den behöver du inte eftersom nyckelordet this skickas med som argument ;)

:)

Medlem sedan sep. 20026 425 inlägg
#6

Det fungerade ej med this (även om jag trodde att det skulle göra det..) men när jag lade till id="o" så fungerade det finfint.

Medlem sedan dec. 20025 483 inlägg
#7

Använder du den funktion som jag postade tidigare? Får du något felmeddelande?

:)

Medlem sedan sep. 20026 425 inlägg
#8

Jag använder funktionen du postade tidigare. Felmeddelande får jag ej, förutom att det står "scriptfel etc." nere i statusraden i webbläsaren..

Medlem sedan dec. 20025 483 inlägg
#9

Det var det jag menade. Vad får du för felmeddelande om du dubbelklickar där (eventuellt även på "Visa information")?

:)

Medlem sedan sep. 20026 425 inlägg
#10

Nu när jag ändrade tillbaka fick jag ej något felmeddelande, varpå jag tänkte i några sekunder och kom på att det var webbläsarens inställningar som troligtvis härjade. IE kollade ej om det fanns en senare version av sidan när jag surfade till den, det vill säga att det var cachningen som gjorde det.
Men nu fungerar allt, och tack Peter S!

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