>웹 프론트엔드 >JS 튜토리얼 >bates_javascript 기술에 ID를 지정하지 않고 javascript로 구현된 상자 효과 코드를 실행하는 Textarea

bates_javascript 기술에 ID를 지정하지 않고 javascript로 구현된 상자 효과 코드를 실행하는 Textarea

WBOY
WBOY원래의
2016-05-16 18:39:501116검색

방금 DOM 노드 트리의 몇 가지 조작 방법과 속성을 배웠고, id와 더블클릭 이벤트를 수동으로 설정하지 않고 예제를 작성해 보았습니다. 오랜 시간 고민 끝에 코드는 다음과 같습니다. : (설명: 텍스트를 더블클릭하여 실행합니다. 상자 안의 코드를 마우스 오른쪽 버튼으로 클릭하여 복사하고 *.htm 파일로 저장하여 테스트합니다.)


<script> /************************************************************************************************************************************ *copyright (C) ymk18@163.com QQ:334150781 URL http://hi.baidu.com/ymk18 欢迎交流 共同学习 共同探讨 共同进步 2009-05-04 PM 19:17 *************************************************************************************************************************************/ window.onload = function() { //把此函数绑定到onload事件上 var textarea = document.getElementsByTagName("textarea"); //把所有textarea元素存入数组变量textarea for (var i=0;i<textarea.length;i++) { //遍历该数组变量textarea textarea[i].setAttribute("id",i); //设置每个textarea元素的id属性 textarea[i].style.posHeight = textarea[i].scrollHeight; //重置高度值使textarea元素高度自适应,重要样式height:200px; textarea[i].ondblclick = function() { //自定义鼠标双击事件 runCode(this.id); //调用运行代码函数 } textarea[i].oncontextmenu = function() { //自定义鼠标右击事件 this.select(); //右击对象中的文本选中效果 copyCode(this.id); //调用复制代码函数 return false; //拦截浏览器默认行为 } } } //运行代码 function runCode(getId) { var code=document.getElementById(getId).firstChild.nodeValue; if (code!=""){ var newwin=window.open('','',''); newwin.opener = null newwin.document.write(code); newwin.document.close(); } } //复制代码 function copyCode(getId) { var text=document.getElementById(getId).firstChild.nodeValue; window.clipboardData.setData("Text",text); alert("内容已经复制到剪切板!"); } //保存代码 function saveCode(getId) { var code=document.getElementById(getId).firstChild.nodeValue; var winname = window.open('', '_blank', 'top=10000'); winname.document.open('text/html', 'replace'); winname.document.writeln(code); winname.document.execCommand('saveas','','code.htm'); winname.close(); } </script>[Ctrl A 모두 선택 참고: <script> var para = document.createElement("p"); //创建一个p元素节点并赋值给para变量 alert(para.nodeName); //显示元素节点的名字 alert(para.nodeType); //nodeType的值若为1->元素节点;2->属性节点;3->文本节点 </script>외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다 <script> window.onload = function() { var para = document.createElement("p"); var txt1 = document.createTextNode("I inserted "); para.appendChild(txt1); var emphasis = document.createElement("em"); var txt2 = document.createTextNode("this"); emphasis.appendChild(txt2); para.appendChild(emphasis); var txt3 = document.createTextNode(" content."); para.appendChild(txt3); var testdiv = document.getElementById("testdiv"); testdiv.appendChild(para); } </script>]<script> window.onload = function() { var para = document.createElement("p"); var txt1 = document.createTextNode("I inserted "); var emphasis = document.createElement("em"); var txt2 = document.createTextNode("this"); var txt3 = document.createTextNode(" content."); para.appendChild(txt1); emphasis.appendChild(txt2); para.appendChild(emphasis); para.appendChild(txt3); var testdiv = document.getElementById("testdiv"); testdiv.appendChild(para); } </script>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.