Avatar billede f2f4 Novice
15. september 2003 - 11:33 Der er 8 kommentarer og
1 løsning

XSLT der opretter HTML med scriptkode!?

Jeg har et XSLT dokument der kan generere en html form. På denne form ønskes nu et lille tjek på en onkeypress event, i dette (javascript) tjek benyttes ==, < og >!

< og > fejler (selvfølgelig fordi det opfattes som tag da det er i en xsl fil) jeg her også prøvet med specialtegnene &lt;, &gt; og &#60; men med samme fejl.

Ken det overhovedet lade sig gøre? Hvis ja hvordan!?

På forhånd tak for evt.  hjælp.
Avatar billede janegil Nybegynder
15. september 2003 - 11:49 #1
Kanskje med CDATA ?

<script type="text/javascript">
<![CDATA[
alert("<");
]]>
</script>
?
Avatar billede frankeman Nybegynder
15. september 2003 - 11:49 #2
du skriver ike hvilken parser du kører med, men følgende virker fint med msXml 2.0 parseren.

så har du bare et styk javascript kode i parent vinduet

<tr onclick="window.parent.markerNoget(this);">
</tr>
Avatar billede f2f4 Novice
15. september 2003 - 11:58 #3
janegil: Jeg tror det desværre ikke:
Dette virker:
function inputTal(e, fld) {
<![CDATA[
charCode = (e.which)?e.which:e.keyCode;
alert(charCode);
if (charCode == 57) {
return false;
} else {
return true;
}
]]>
}

Dette 'stadig' virker:
function inputTal(e, fld) {
<![CDATA[
charCode = (e.which)?e.which:e.keyCode;
alert(charCode);
if (charCode > 57) {
return false;
} else {
return true;
}
]]>
}
Avatar billede f2f4 Novice
15. september 2003 - 12:02 #4
frankeman: Undskyld - jeg forstår ikke helt dit svar!?

Mit program er en java applikation, så vidt jeg ved er 'parseren' Xalan 2.
Avatar billede f2f4 Novice
15. september 2003 - 12:05 #5
janegil: Ja undskyld jeg skrev forkert ... det nederste eksempel af ovenstående virker ikke!
Avatar billede frankeman Nybegynder
15. september 2003 - 13:57 #6
sorry troede at du lavede en klient application, hvor man ofte har xslt genereret html kode i en iframe. F.eks. en tabel, så kan man fra iframen refere ud til javascript kode på nævnte måde. Dvs. man undgår at have javascript blokke i xslt´en.

Java applikationer har jeg ikke styr på, jeg programmere c sharp ;-)
Avatar billede f2f4 Novice
16. september 2003 - 12:03 #7
Jeg har ikke fundet ud af ovenstående, men problemet er løst.

Istedet for at tjekke på < og > (keycode) har jeg løst det på nedenstående måde (altså undgået brug af < og >

function getkey(e)
{
if (window.event)
  return window.event.keyCode;
else if (e)
  return e.which;
else
  return null;
}
function keypress(e, goods)
{
var key, keychar;
key = getkey(e);
if (key == null) return true;

// get character
keychar = String.fromCharCode(key);
keychar = keychar.toLowerCase();
goods = goods.toLowerCase();

// check goodkeys
if (goods.indexOf(keychar) != -1)
    return true;

// control keys
if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 || key==44 )
  return true;

// else return false
return false;
}

::

<input type="text" size="5" class="text" onKeyPress="return keypress(event, '0123456789');">

::
Avatar billede f2f4 Novice
16. september 2003 - 12:06 #8
Ideén var at man kun skulle kunne skrive tal i et input text field og dette er nu løst med ovenstående
Avatar billede f2f4 Novice
16. september 2003 - 12:33 #9
så vi slutter her!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester