Jesper TMedlem sedan nov. 20017 144 inlägg God morgon!
Finns det något sätt för att få upp en alert genom att skriva <script>alert("hej")</script> i detta textfält?
Vanlig text och formaterat text funkar ju bra, men inga script. Varför?
<input type="text" name="textfield" onkeyup="document.all.lager.innerHTML=this.value">
<div id="lager"></div>
Du vill mao köra det kommando som användaren skriver in?
<form>
<input type="text" name="textfield" id="foo" value="alert('hej');" />
<input type="button" onclick="eval(this.form.elements['textfield'].value);" >
<form>
Att lägga till med hjälp av innerHTML går däremot inte...
Jesper TMedlem sedan nov. 20017 144 inlägg Ok, vad trist då. Men tack ändå.
Jesper TMedlem sedan nov. 20017 144 inlägg efter lite tester så kommer man ju trots allt ganska nära med:
Borde det inte funka på något vis?
<input type="text" name="textfield" onkeyup="<input type="text" name="textfield" onkeyup="document.all.lager.innerHTML=eval(this.value);document.all.lager.innerHTML=this.value;">
<div id="lager"></div>
Jesper, det där kommer inte fungera så bra... Tänk på det här med cituationstecken. Antingen kan du escape dem med \, eller så kan du använda dig av enkla när du använt dubbla.
Jag menar att
onkeyup="<input type="text"....
kommer att ge dig javascript error, i stället skriver du
onkeyup="<input type='text'....
Jesper TMedlem sedan nov. 20017 144 inlägg Oj, jag menade visst inte så. Jag menade så här:
<input type="text" name="textfield" onkeyup="document.all.lager.innerHTML=eval(this.value);document.all.lager.innerHTML=this.value;">
<div id="lager"></div>
Ok... dock förstår jag inte vad du vill göra. Ovanstående ger dig javascript error, för så fort du matar in ett tecken kommer den att köra eval på den. Testa och se.
Sen är document.all inte att rekommendera, anvädn document.getElementById() i stället.
Jesper TMedlem sedan nov. 20017 144 inlägg Men kan man med regexp eller något plocka ut saker ur texen som den skall göra eval på då.
Låt säga att jag skriver en massa text och mitt itexten skall jag öppna en popup och skriver &&window.open("något")&& regexpen plockar ut det som ligger i mellan && och && och kör detta.
Lite virrit kanske men, men.
Testade du nitro2k01:s exempel?
Jesper TMedlem sedan nov. 20017 144 inlägg Ja, men där uppstår ju samma problem om jag kombinerar med text som det kommer att göras.
Jesper TMedlem sedan nov. 20017 144 inlägg Jag gjorde så här, alltså när man var som helst i textfältet skriver §§alert("HEJ")§§ så körs alerten.
Men det kanske finns mer ultimata sätt för detta.
Tips mottages gärna.
<head>
<script type="text/javascript">
var ret=false;
function evlistener(str){
document.getElementById('lager').innerHTML=document.myForm.textfield.value;
var regExp = /§§/g
var arrHits = str.match(regExp)+1;
if(arrHits.length >5 && ret==false){
var str1=str.split(/([§§*])/);
str=eval(str1[1]);
ret=true;
}
}
</script>
</head>
<body>
<form name="myForm">
<textarea name="textfield" onkeyup="evlistener(document.getElementById('lager').innerHTML)"></textarea>
</form>
<div id="lager"></div>
</body>