| Gzu521.com我的学习网 |
|
// 出错检验代码~~~~~~ if(sel.parentelement() != tmp.parentelement()) return; tmp.setendpoint(’endtoend’, sel) for (var i=0; tmp.text.match(/^[\t]+/g) && i<tmp.text.match(/^[\t]+/g)[0].length; i++) tabs += ’\t’ sel.text = ’\r\n’+tabs sel.select() break default : event.returnvalue = true break; } return; } function runcode() { var str = document.getelementbyid(’txt_main’).value; var code_win = window.open(’about:blank’); code_win.document.open(); code_win.document.writeln(’<script>’); code_win.document.writeln(’function reporterror(msg,url,line){\nline-=14;\nvar str=’you have found an error as below: \\n\\n’;\nstr+=’err: ’+msg+’ on line: ’+(line);\nalert(str);\nopener.goto(line);\nopener.focus();\nwindow.onerror=null;\nsettimeout(’self.close()’,10);\nreturn true;\n}’); code_win.document.writeln(’window.onerror = reporterror;’); code_win.document.writeln(’<\/script>’); code_win.document.writeln(str); code_win.document.close(); return; } function savecode() { var str = document.getelementbyid(’txt_main’).value; var code_win = window.open(’about:blank’,’_blank’,’top=10000’); code_win.document.open(); code_win.document.writeln(str); code_win.document.close(); code_win.document.execcommand(’saveas’,’’,’code.html’); code_win.close(); return; } function goto(ln) { if(!/^\d+$/.test(ln)) return; var obj = document.getelementbyid(’txt_main’); var rng = obj.createtextrange(); var arr = obj.value.replace(/\r/, ’’).split(/\n/); if(ln>arr.length) ln = arr.length; var str_tmp = ’’; for(var i=0; i<ln-1; i++) { str_tmp += arr[i]; } rng.movestart(’character’,str_tmp.length+1); str_tmp = ’’; for(i=ln; i<arr.length; i++) { str_tmp += arr[i]; } rng.moveend(’character’,-str_tmp.length); rng.select(); return; } window.onload = function() {document.getelementbyid(’txt_main’).value = ’<script>\nalert(’)\n<\/script>’;} </script> <body> <table width=’600’ class=’list’ border=’1’ bgcolor=’#eeeeee’ bordercolorlight=’#000000’ bordercolordark=’#ffffff’ cellpadding=’0’ cellspacing=’0’> <tr bgcolor=’#cccccc’> <td colspan=’2’ height=’20’ align=’center’><b>debug textarea</b></td> </tr> <tr> <td colspan=’2’> <table width=’95%’ border=’0’ align=’center’ > <tr> <td align=’center’><br /> <textarea id=’txt_ln’ name=’content’ rows=’10’ style=’width:40px;overflow:hidden;height:200px;border-right:0px;text-align:right;line-height:14px’ onselectstart=’this.nextsibling.focus();return false’ readonly></textarea><textarea id=’txt_main’ name=’content’ rows=’10’ cols=’80’ onkeydown=’edittab()’ onkeyup=’show_ln()’ onscroll=’show_ln()’ wrap=’off’ style=’overflow:auto;height:200px;padding-left:5px;border-left:0px;line-height:14px’></textarea> <script>for(var i=1; i<=20; i++) document.getelementbyid(’txt_ln’).value += i + ’\n’;</script> </td> </tr> <tr> <td align=’center’><br /> <input type=’button’ value=’ 运 行 ’ onclick=’runcode()’ accesskey=’r’> <input type=’button’ value=’ 保 存 ’ onclick=’savecode()’ accesskey=’s’> <input type=’button’ value=’ 跳 转 ’ onclick=’goto(prompt(’please input the line number’, ’1’))’ accesskey=’g’> </td> </tr> </table> </td> </tr> </table> </body> </html> ************************************************************* tab键在文本域中的体现 程序代码:<script> function edittab() { var code, sel, tmp, r var tabs=’’ event.returnvalue = false sel =event.srcelement.document.selection.createrange() r = event.srcelement.createtextrange() switch (event.keycode) { case (8) : if (!(sel.getclientrects().length > 1)) { event.returnvalue = true return } code = sel.text tmp = sel.duplicate() tmp.movetopoint(r.getboundingclientrect().left, sel.getclientrects()[0].top) sel.setendpoint(’starttostart’, tmp) sel.text = sel.text.replace(/^\t/gm, ’’) code = code.replace(/^\t/gm, ’’).replace(/\r\n/g, ’\r’) r.findtext(code) r.select() break case (9) : if (sel.getclientrects().length > 1) { code = sel.text tmp = sel.duplicate() tmp.movetopoint(r.getboundingclientrect().left, sel.getclientrects()[0].top) sel.setendpoint(’starttostart’, tmp) sel.text = ’\t’+sel.text.replace(/\r\n/g, ’\r\t’) code = code.replace(/\r\n/g, ’\r\t’) r.findtext(code) r.select() } else { sel.text = ’\t’ sel.select() } break case (13) : tmp = sel.duplicate() tmp.movetopoint(r.getboundingclientrect().left, sel.getclientrects()[0].top) tmp.setendpoint(’endtoend’, sel) for (var i=0; tmp.text.match(/^[\t]+/g) && i<tmp.text.match(/^[\t]+/g)[0].length; i++) tabs += ’\t’ sel.text = ’\r\n’+tabs sel.select() break default : event.returnvalue = true break } } </script> <textarea cols=75 rows=20 onkeydown=’edittab()’> <script> alert(’ok’) </script></textarea> ************************************************************* 获取input的非value值,而是显示文本值 程序代码: <select name=’sss’ onchange=’alert(this.options[this.selectedindex].text)’> <option value=’1’>asdf</option> <option value=’2’>bbbb</option> <option value=’3’>ccc</option> </select> ************************************************************* select里的option进行分类列表 程序代码: <span style=’position:absolute;border:1px inset #d3d6d9’><select style=’margin:-2px; width:200px’> <option selected>------------请选择------------</option> <optgroup label=’javascript&vbscript区’> <option>原 创 <option>经 典 <optgroup label=’后台区’> <option>asp&sql <option>php&MySQL </select></span> ************************************************************* 动态添加 程序代码:<form name=’myform’ method=’post’> <select name=’dept_company’ size=’10’ multiple id=’dept_company’ class=’myselect’> <option value=’’>please select...</option> <option value=’a’>aa</option> <option value=’b’>bb</option> <option value=’c’>cc</option> </select><input name=’dept_company_list’ type=’hidden’> <input name=’button’ type=’button’ class=’mybutton’ onclick=’additem(’dept_company’,’dept_company2’)’ value=’添加-->>’> <input name=’button’ type=’button’ class=’mybutton’ onclick=’deleteitem(’dept_company2’,’dept_company’)’ value=’<<--删除’> <select name=’dept_company2’ size=’10’ multiple id=’dept_company2’ class=’myselect’> </select> </form> <script> function additem(fromname,toname){ eval(’var obj1=myform.’+fromname); eval(’var obj2=myform.’+toname); obj1.options[0].selected=false; if(obj1.selectedindex == -1) return false; var tempvalue; var temptext; for(var i=1;i<obj1.length;i++){ //begin from 1 if(obj1.selectedindex == -1)break; tempvalue=obj1.options[obj1.selectedindex].value; temptext=obj1.options[obj1.selectedindex].text; obj1.options[obj1.selectedindex]=null; obj2.add(new option(temptext,tempvalue),0); } } function deleteitem(fromname,toname){ eval(’var obj1=myform.’+fromname); eval(’var obj2=myform.’+toname); if(obj1.selectedindex == -1) return false; var tempvalue; var temptext; for(var i=0;i<obj1.length;i++){ //begin from 0 if(obj1.selectedindex == -1)break; tempvalue=obj1.options[obj1.selectedindex].value; temptext=obj1.options[obj1.selectedindex].text; obj1.options[obj1.selectedindex]=null; obj2.add(new option(temptext,tempvalue),1); //additem index is 1 } } </script> ************************************************************* |
责任编辑:gzu521