⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 script_gecko.js.php

📁 架設ROSE私服必備之物 ROSE數據庫
💻 PHP
📖 第 1 页 / 共 4 页
字号:
  // control registration array
  var spaw_editors = new Array();
  
  // returns true if editor is already registered
  function SPAW_editor_registered(editor)
  {
    var found = false;
    for(var i=0;i<spaw_editors.length;i++)
    {
      if (spaw_editors[i] == editor)
      {
        found = true;
        break;
      }
    }
    return(found);
  }
  
  // onsubmit
  function SPAW_UpdateFields()
  {
    for (var i=0; i<spaw_editors.length; i++)
    {
      SPAW_updateField(spaw_editors[i], null);
    }
  }
  
  // adds event handler for the form to update hidden fields
  function SPAW_addOnSubmitHandler(editor)
  {
    thefield = SPAW_getFieldByEditor(editor, null);

    var sTemp = "";
    oForm = document.getElementById(thefield).form;
    if(oForm.onsubmit != null) {
      sTemp = oForm.onsubmit.toString();
      iStart = sTemp.indexOf("{") + 2;
      sTemp = sTemp.substr(iStart,sTemp.length-iStart-2);
    }
    if (sTemp.indexOf("SPAW_UpdateFields();") == -1)
    {
      oForm.onsubmit = new Function("SPAW_UpdateFields();" + sTemp);
    }
  }

  // editor initialization
  function SPAW_editorInit(editor, css_stylesheet, direction)
  {
    var ed = document.getElementById(editor+'_rEdit');
    if (!SPAW_editor_registered(editor))
    {
      // register the editor 
      spaw_editors[spaw_editors.length] = editor;
    
      // add on submit handler
      SPAW_addOnSubmitHandler(editor);
   
      ed.contentDocument.designMode = 'on';
      var s_sheet = ed.contentDocument.createElement("link");
      s_sheet.setAttribute("rel","stylesheet");
      s_sheet.setAttribute("type","text/css");
      s_sheet.setAttribute("href",css_stylesheet);

      var head = ed.contentDocument.getElementsByTagName("head");
      head[0].appendChild(s_sheet);

      // set initial value
      var ta_field = document.getElementById(editor);
      var html = ta_field.value;
      if (html != null && html != "\n")
        ed.contentDocument.body.innerHTML = html;
        
     // hookup active toolbar related events
     ed.contentDocument.addEventListener('keyup', new Function("e","SPAW_onkeyup('"+editor+"',e);"), false);
     ed.contentDocument.addEventListener('mouseup', new Function("SPAW_update_toolbar('"+editor+"', true);"), false);
     
     // initialize toolbar
     spaw_context_html = "";
     SPAW_update_toolbar(editor, true);

     // workaround to missing cursor on first load        
     ed.contentDocument.designMode = 'on';
    }
  } 
   
  
  
  function SPAW_showColorPicker(editor,curcolor,callback) 
  {
    var wnd = window.open('<?php echo $GLOBALS["spaw_dir"]?>dialogs/colorpicker.php?lang=' 
      + document.getElementById('SPAW_'+editor+'_lang').value + '&theme=' 
      + document.getElementById('SPAW_'+editor+'_theme').value 
      + '&editor=' + editor + '&callback=' + callback, "color_picker", 
      'status=no,modal=yes,width=350,height=250'); 
    wnd.dialogArguments = curcolor;
    return wnd;
  }

  function SPAW_bold_click(editor, sender)
  {
    var ed = document.getElementById(editor+'_rEdit');
    ed.contentDocument.execCommand('bold', false, null);
    ed.contentWindow.focus();
    SPAW_update_toolbar(editor, true);    
  }

  function SPAW_italic_click(editor, sender)
  {
    var ed = document.getElementById(editor+'_rEdit');
   	ed.contentDocument.execCommand('italic', false, null);
    ed.contentWindow.focus();
    SPAW_update_toolbar(editor, true);    
  }

  function SPAW_underline_click(editor, sender)
  {
    var ed = document.getElementById(editor+'_rEdit');
   	ed.contentDocument.execCommand('underline', false, null);
    ed.contentWindow.focus();
    SPAW_update_toolbar(editor, true);    
  }
  
  function SPAW_left_click(editor, sender)
  {
    var ed = document.getElementById(editor+'_rEdit');
   	ed.contentDocument.execCommand('justifyleft', false, null);
    ed.contentWindow.focus();
    SPAW_update_toolbar(editor, true);    
  }

  function SPAW_center_click(editor, sender)
  {
    var ed = document.getElementById(editor+'_rEdit');
   	ed.contentDocument.execCommand('justifycenter', false, null);
    ed.contentWindow.focus();
    SPAW_update_toolbar(editor, true);    
  }

  function SPAW_right_click(editor, sender)
  {
    var ed = document.getElementById(editor+'_rEdit');
   	ed.contentDocument.execCommand('justifyright', false, null);
    ed.contentWindow.focus();
    SPAW_update_toolbar(editor, true);    
  }

  function SPAW_justify_click(editor, sender)
  {
    var ed = document.getElementById(editor+'_rEdit');
   	ed.contentDocument.execCommand('justifyfull', false, null);
    ed.contentWindow.focus();
    SPAW_update_toolbar(editor, true);    
  }
  
  function SPAW_ordered_list_click(editor, sender)
  {
    var ed = document.getElementById(editor+'_rEdit');
   	ed.contentDocument.execCommand('insertorderedlist', false, null);
    ed.contentWindow.focus();
    SPAW_update_toolbar(editor, true);    
  }

  function SPAW_bulleted_list_click(editor, sender)
  {
    var ed = document.getElementById(editor+'_rEdit');
   	ed.contentDocument.execCommand('insertunorderedlist', false, null);
    ed.contentWindow.focus();
    SPAW_update_toolbar(editor, true);    
  }
  
  function SPAW_fore_color_click(editor, sender)
  {
    var wnd = SPAW_showColorPicker(editor,null,'SPAW_fore_color_click_callback'); 
  }
  
  function SPAW_fore_color_click_callback(editor, sender)
  {
    var fCol = sender.returnValue;
    if (fCol != null)
    {
      var ed = document.getElementById(editor+'_rEdit');
     	ed.contentDocument.execCommand('forecolor', false, fCol);
    }
    ed.contentWindow.focus();
  }

  function SPAW_bg_color_click(editor, sender)
  {
    var wnd = SPAW_showColorPicker(editor,null,'SPAW_bg_color_click_callback'); 
  }

  function SPAW_bg_color_click_callback(editor, sender)
  {
    var fCol = sender.returnValue;
    if (fCol != null)
    {
      var ed = document.getElementById(editor+'_rEdit');
     	ed.contentDocument.execCommand('hilitecolor', false, fCol);
    }
    ed.contentWindow.focus();
  }

  function SPAW_getA(editor)
  {
    var ed = document.getElementById(editor+'_rEdit');
    var selection = ed.contentWindow.getSelection();
    var selectedRange;
    if (selection.rangeCount > 0) {
      selectedRange = selection.getRangeAt(0);
    }
    var aControl = selectedRange.startContainer;
    while ((aControl.tagName != 'A') && (aControl.tagName != 'BODY'))
    {
      aControl = aControl.parentNode;
    }
    if (aControl.tagName == 'A')
      return(aControl);
    else
      return(null);
  }

  function SPAW_hyperlink_click(editor, sender)
  {
    var ed = document.getElementById(editor+'_rEdit');
    var a = SPAW_getA(editor);

    var aProps = {};
    // get anchors on the page
    aProps.anchors = new Array();
    var links = ed.contentDocument.getElementsByTagName('A');
    var aln = 0;
    if (links != null) aln = links.length;
    for (var i=0;i<aln;i++)
    {
      if (links[i].name != null && links[i].name != '')
        aProps.anchors[aProps.anchors.length] = links[i].name;
    }

    if (a)
    {
      aProps.href = a.attributes["href"]?a.attributes["href"].nodeValue:'';
      aProps.name = a.name;
      aProps.target = a.target;
      aProps.title = a.title;
    }
    var wnd = window.open('<?php echo $GLOBALS["spaw_dir"]?>dialogs/a.php?lang=' 
      + document.getElementById('SPAW_'+editor+'_lang').value + '&theme=' 
      + document.getElementById('SPAW_'+editor+'_theme').value
      + '&editor=' + editor + '&callback=SPAW_hyperlink_click_callback', "link_window", 
      'status=no,modal=yes,width=350,height=250'); 
    wnd.dialogArguments = aProps;
  }
  
 /***********************/
 function insertNodeAtSelection(win, insertNode)
  {
      // get current selection
      var sel = win.getSelection();

      // get the first range of the selection
      // (there's almost always only one range)
      var range = sel.getRangeAt(0);

      // deselect everything
      sel.removeAllRanges();

      // remove content of current selection from document
      range.deleteContents();

      // get location of current selection
      var container = range.startContainer;
      var pos = range.startOffset;

      // make a new range for the new selection
      range=document.createRange();

      if (container.nodeType==3 && insertNode.nodeType==3) {

        // if we insert text in a textnode, do optimized insertion
        container.insertData(pos, insertNode.nodeValue);

        // put cursor after inserted text
        range.setEnd(container, pos+insertNode.length);
        range.setStart(container, pos+insertNode.length);

      } else {


        var afterNode;
        if (container.nodeType==3) {

          // when inserting into a textnode
          // we create 2 new textnodes
          // and put the insertNode in between

          var textNode = container;
          container = textNode.parentNode;
          var text = textNode.nodeValue;

          // text before the split
          var textBefore = text.substr(0,pos);
          // text after the split
          var textAfter = text.substr(pos);

          var beforeNode = document.createTextNode(textBefore);
          var afterNode = document.createTextNode(textAfter);

          // insert the 3 new nodes before the old one
          container.insertBefore(afterNode, textNode);
          container.insertBefore(insertNode, afterNode);
          container.insertBefore(beforeNode, insertNode);

          // remove the old node
          container.removeChild(textNode);

        } else {

          // else simply insert the node
          afterNode = container.childNodes[pos];
          container.insertBefore(insertNode, afterNode);
        }

        range.setEnd(afterNode, 0);
        range.setStart(afterNode, 0);
      }

      sel.addRange(range);
      
      // remove all ranges
      win.getSelection().removeAllRanges();
  };
 /***********************/
  
  function SPAW_hyperlink_click_callback(editor, sender)
  {
    var naProps = sender.returnValue;

    var ed = document.getElementById(editor+'_rEdit');
    var a = SPAW_getA(editor);
    
    if (a)
    {
      // edit link
      if (!naProps.href && !naProps.name)
      {
        // remove hyperlink
        a.outerHTML = a.innerHTML;
      }
      else
      {
        // set link properties
        if (naProps.href)
          a.href = naProps.href;
        else
          a.removeAttribute('href',0);
        if (naProps.name)
          a.name = naProps.name;
        else
          a.removeAttribute('name',0);
        if (naProps.target && naProps.target!='_self')
          a.target = naProps.target;
        else
          a.removeAttribute('target',0);
        if (naProps.title)
          a.title = naProps.title;
        else
          a.removeAttribute('title',0);
	
		  	a.removeAttribute('onclick',0);
      }
    }
    else
    {
      // new link
      var a;
      a = document.createElement('A');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -