现在的位置: 首页 > 综合 > 正文

JavaScript快速代码执行域

2013年10月09日 ⁄ 综合 ⁄ 共 1931字 ⁄ 字号 评论关闭

 

 <textarea style="width: 800px;height: 500px;" id="code" ></textarea>
<br />
<input type="button" id="run" value="运行" />
<script>
 (function (){
  var TabEvent = window.TabEvent = {
   bindElement: function (target) {
    target.onkeydown = function (event){
     var tabString = "/t";
     //IE support
     if(9 === (window.event || event).keyCode){
      if (document.selection) {
       target.focus();
       sel = document.selection.createRange();
       sel.text = tabString;
       sel.select();
      }
      //MOZILLA/NETSCAPE support
      else if (target.selectionStart || target.selectionStart == '0') {
       var startPos = target.selectionStart;
       var endPos = target.selectionEnd;
       // save scrollTop before insert
       var restoreTop = target.scrollTop;
       target.value = target.value.substring(0, startPos) + tabString + target.value.substring(endPos, target.value.length);
       if (restoreTop > 0) {
        // restore previous scrollTop
        target.scrollTop = restoreTop;
       }
       target.focus();
       target.selectionStart = startPos + tabString.length;
       target.selectionEnd = startPos + tabString.length;
      } else {
       target.value += tabString;
       target.focus();
      }
      return false;
     }
    }
   },
   bindOne: function (target){
    var targetNode = target;
    
    if(target.substring){
     targetNode = this.get(target);
    }
    if(targetNode.nodeName && targetNode.nodeName.toUpperCase && targetNode.nodeName.toUpperCase() === "TEXTAREA"){
     this.bindElement(targetNode);
    } else {
     throw new Error("the target is not a textarea node or id。");
    }
   },
   binInputTabs: function (target){
    if(target.length && target.push){
     for(var i=0;i<target.length;i++){
      this.bindOne(target[i]);
     }
    } else {
     this.bindOne(target);
    }
   },
   get: function (id){
    return document.getElementById(id)
   }
  };
 })();
 function get(id) {
  return document.getElementById(id);
 }
 TabEvent.binInputTabs("code");
 get("run").onclick = function(){
  eval(get("code").value);
 }
</script>
 

IE测试通过:

FireFox测试通过:

 

抱歉!评论已关闭.