webForumDet fria alternativet

insertAdjacentText() och händelsehanterare

9 svar · 217 visningar · startad av m_soderlund

m_soderlundMedlem sedan sep. 20026 425 inlägg
#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.

Peter SMedlem 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>

:)

PepeJeriaMedlem 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>
m_soderlundMedlem 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>
Peter SMedlem sedan dec. 20025 483 inlägg
#5

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

:)

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

Peter SMedlem sedan dec. 20025 483 inlägg
#7

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

:)

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

Peter SMedlem 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")?

:)

m_soderlundMedlem 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!

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