• 简单在线编辑器 兼容Firefox,IE Demo


    http://www.e077.com/html/ 

    rw_editor.js

    /*
    *write by 惠万鹏
    *date 2008-12-04
    */

    /** 判断是ie浏览器还是火狐浏览器 */
    var IE_BROWSER = 0;
    var FF_BROSWER = 1;

    var browserType = IE_BROWSER;
    if (window.netscape)
    {
        browserType = FF_BROSWER;


    /** 得到iframe对象的内容窗口 */
    var oEditor = document.getElementById("editeFrame").contentWindow;

    oEditor.document.designMode = 'On';
    oEditor.document.contentEditable = true;
    /** 兼容火狐浏览器 */
    oEditor.document.write('<html><body>aaa</body></html>');
    oEditor.document.close();

    /** 个性化窗口 */
    var individuationWin = null;
    /** 更改代码窗口 */
    var editorWin = null;    
    /** 预览窗口 */
    var previewWin = null;
    /** 编辑开始*********************************************** */
    function initialHtml(hmtl)
    {
        oEditor.document.designMode = "On";
        oEditor.document.contentEditable = true;
        oEditor.document.write(hmtl);
        oEditor.document.close();
    }  
    /** 编辑结束*********************************************** */


    /** 编辑开始*********************************************** */
    function editor()
    {
        
    if(editorWin == null  || editorWin.closed == true)
        {
            
    var iWidth = 800,iHeight = 600//弹出窗口的宽度,弹出窗口的高度;
             var iTop = (window.screen.availHeight-30-iHeight)/2//获得窗口的垂直位置;
              var iLeft = (window.screen.availWidth-10-iWidth)/2;  //获得窗口的水平位置;
              
              
    var winParameters = "width=" + iWidth + ",height=" + iHeight;
              winParameters += ",left=" + iLeft + ",top=" + iTop;
              winParameters += ",menubar=no,scrollbars=yes, resizable=yes,location=no, status=no";
        
            editorWin = window.open("editCode.html","编辑原代码窗口",winParameters);
        }
        
    else
        {
            editorWin.focus();
        }
    }
    /** 编辑结束*********************************************** */

    /** 个性化开始*********************************************** */
    function individuation()
    {
        
    /** 兼容ie和fireFox */
        
    if(individuationWin == null || individuationWin.closed == true)
        {
            
    var iWidth = 200,iHeight = 100;
             
    var iTop = (window.screen.availHeight-30-iHeight)/2;
              
    var iLeft = (window.screen.availWidth-10-iWidth)/2;
              
              
    var winParameters = "width=" + iWidth + ",height=" + iHeight;
              winParameters += ",left=" + iLeft + ",top=" + iTop;
              winParameters += ",menubar=no,scrollbars=yes, resizable=yes,location=no, status=no";
              
            individuationWin = window.open("individuation.html","个性化窗口",winParameters);
        }
        
    else
        {
            individuationWin.focus();
        }
    }
    /** 个性化结束*********************************************** */


    /** 预览开始*********************************************** */
    function perview()
    {
        
    if(previewWin != null && !previewWin.closed)
        {
            previewWin.close();
        }
        
    var iWidth = 1024, iHeight = 800;
         
    var iTop = (window.screen.availHeight-30-iHeight)/2;
          
    var iLeft = (window.screen.availWidth-10-iWidth)/2;
          
          
    var winParameters = "width=" + iWidth + ",height=" + iHeight;
          winParameters += ",left=" + iLeft + ",top=" + iTop;
          winParameters += ",menubar=no,scrollbars=yes, resizable=yes,location=no, status=no";
        
        previewWin = window.open("","预览",winParameters);
        
    var html = getAllText();
        previewWin.document.write(html);
    }
    /** 预览结束*********************************************** */

    /** 得到所有文本-开始*********************************************** */
    function getAllText()
    {
        
    var html = "html><body></body></html>";
        
    if(browserType == IE_BROWSER)
        {
            html = _getAllText4IE();
        }
        
    else if(browserType == FF_BROSWER)
        {
            html = _getAllText4FF();
        }
        
    else
        {
            alert("this software only for ie and firefox!");
        }
        
    return html;
    }

    function _getAllText4IE()
    {
        
    return oEditor.document.lastChild.outerHTML;
    }

    function _getAllText4FF()
    {
        
    /** fireFox下没有outerHTML,所以手工加上html标签 */
        
    return "<html>" + oEditor.document.documentElement.innerHTML + "</hmtl>";
    }
    /** 得到所有文本-结束*********************************************** */

    /**复制-开始 *************************************************/
    function copy()
    {
        
    if(browserType == IE_BROWSER)
        {
            _getCopy4IE();
        }
        
    else if(browserType == FF_BROSWER)
        {
            _getCopy4FF();
        }
        
    else
        {
            alert("this software only for ie and firefox!");
        }
    }

    function _getCopy4IE()
    {
        
    var selectedText = oEditor.document.selection.createRange().text;
        
    /** 执行拷贝操作 */
        setClipboard(selectedText); 
    }

    function _getCopy4FF()
    {
        
    /** 火狐下得到选中的文本 */
        
    var selectedText = oEditor.getSelection().toString();
        
    /** 执行拷贝操作 */
        setClipboard(selectedText); 
    }
    /**复制-结束 *************************************************/

    /**粘贴-开始*************************************************/
    function paste()
    {
        
    var html = getClipboard();
        insertHTML(html);
    }
    /**粘贴-结束*************************************************/


    /**插入HTML-开始***************************************/  
    function insertHTML(html)
    {
        
    if(browserType == IE_BROWSER)
        {
            _insertHTML2IE(html);
        }
        
    else if(browserType == FF_BROSWER)
        {
            _insertHTML2FF(html);
        }
        
    else
        {
            alert("this software only for ie and firefox!");
        }
    }

    function _insertHTML2IE(html)
    {
        
    if (oEditor.document.selection.type.toLowerCase() != "none")
        {
            oEditor.document.selection.clear() ;
        }
        oEditor.document.selection.createRange().pasteHTML(html) ; 
    }

    function _insertHTML2FF(html)
    {
        
    var r = oEditor.getSelection().getRangeAt(0);
        
    var oFragment = r.createContextualFragment(html); 
        r.deleteContents();
        r.insertNode(oFragment);
    }
    /**插入HTML-结束***************************************/

    editor.html
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
        
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <body>
        
    <input type="button" value="复制" onclick="copy();"
        
    /><input type="button" value="粘贴" onclick="paste();"
        
    /><input type="button" value="编辑" onclick="editor();"
        
    /><input type="button" value="个性" onclick="individuation();"
        
    /><input type="button" value="预览" onclick="perview();"/><br />
        
    <iframe id="editeFrame" marginheight="1" marginwidth="1" width="550" height="286" scrolling="auto"></iframe>
        
    <script type="text/javascript" src="copyPaste.js"></script>
        
    <script type="text/javascript" src="rw_editor.js"></script>
    </body>
    </html>

    individuation.html
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      
    <head>
        
    <title>个性化设置</title>
        
    <script type="text/javascript">
            
    function individuation()
            {
                window.opener.insertHTML(document.getElementById("individuationType").value);
            }
        
    </script>
      
    </head>
      
      
    <body>
        
    <select id="individuationType" name="individuationType" style="100;">
            
    <option value="#name#">姓名</option>
            
    <option value="#sex#">性别</option>
            
    <option value="#age#">年龄</option>
            
    <option value="#email#">EMAIL</option>
            
    <option value="#address#">地址</option>
        
    </select>
        
    <input type="button" value="确定" onclick="individuation();">
      
    </body>
    </html>

  • 相关阅读:
    2015上阅读计划
    《梦断代码》读书笔记 第2篇
    四则运算3
    求数组中最大子数组的和(一维)
    四则运算2—单元测试
    四则运算2
    《梦断代码》读书笔记 第1篇
    四组运算2(思路)
    四则运算1
    读书笔记
  • 原文地址:https://www.cnblogs.com/zxjyuan/p/2047479.html
Copyright © 2020-2023  润新知