一个符号插入器 中用到的js代码


Posted in Javascript onSeptember 04, 2007

/**
 * @author tin555
 */
function setHTML(html) {
    ContentEdit.value = html;
        eWebEditor.document.designMode="On";
        eWebEditor.document.open();
        eWebEditor.document.write(html);
        eWebEditor.document.body.contentEditable="true";
        eWebEditor.document.execCommand("2D-Position",true,true);
        eWebEditor.document.execCommand("MultipleSelection", true, true);
        eWebEditor.document.execCommand("LiveResize", true, true);
        eWebEditor.document.close();
    eWebEditor.document.body.onpaste = onPaste ;
    //eWebEditor.document.body.onhelp = onHelp ;
    //eWebEditor.document.body.ondragend = new Function("return doDragEnd();");
    eWebEditor.document.onkeydown = new Function("return onKeyDown(eWebEditor.event);");
    //eWebEditor.document.oncontextmenu=new Function("return showContextMenu(eWebEditor.event);");
    //eWebEditor.document.onmousedown = new Function("return onMouseDown();");
    //eWebEditor.document.onmouseup = new Function("return onMouseUp();");
}

function getHTML() {
    var html;

        html = eWebEditor.document.body.innerHTML;

        if ((html.toLowerCase()=="<p> </p>")||(html.toLowerCase()=="<p></p>")){
            html = "";
        }

    return html;
}

function insertHTML(html) {

    eWebEditor.focus();
    if (eWebEditor.document.selection.type.toLowerCase() != "none"){
        eWebEditor.document.selection.clear() ;
    }
    eWebEditor.document.selection.createRange().pasteHTML(html) ; 
}

function appendHTML(html) {
    if (eWebEditor.document.selection.type.toLowerCase() != "none"){
        eWebEditor.document.selection.clear() ;
    }
        eWebEditor.document.body.innerHTML += html;

}

function doDragEnd(){
    var oSelection = eWebEditor.document.selection.createRange();
    var sRangeType = eWebEditor.document.selection.type;
    if (sRangeType == "Control") {
        var oControl = oSelection.item(0);
        if (oControl.tagName == "IMG"){
            oControl.src = FullPath2SetPath(oControl.src);
        }
    }
    if (sRangeType == "Text") {
        var els = eWebEditor.document.body.getElementsByTagName("IMG");
        var oRngTemp = eWebEditor.document.body.createTextRange();
        for(var i=0;i<els.length;i++){
            oRngTemp.moveToElementText(els(i));
            if (oSelection.inRange(oRngTemp)){
                els(i).src = FullPath2SetPath(els(i).src)
            }
        }
    }

    return true;
}

function onKeyDown(event){
    var n_KeyCode = event.keyCode;
        if (n_KeyCode==13){
                    return false;
        }
}

var oResizing = new Object;
function onMouseDown(){
    oResizing.El = null;
    if (eWebEditor.document.selection.type == "Control") {
        var oControlRange = eWebEditor.document.selection.createRange();
        oResizing.El = oControlRange(0);
        oResizing.W = oResizing.El.style.width;
        oResizing.H = oResizing.El.style.height;
    }

    
}

function GetClipboardHTML() {
    var oDiv = document.getElementById("eWebEditor_Temp_HTML");
    oDiv.innerHTML = "" ;
    var oTextRange = document.body.createTextRange() ;
    oTextRange.moveToElementText(oDiv) ;
    oTextRange.execCommand("Paste") ;

    var sData = oDiv.innerHTML ;
    oDiv.innerHTML = "" ;

    return sData ;
}

function cleanAndPaste( html ) {
    html = html.replace(/<\/?SPAN[^>]*>/gi, "" );
    html = html.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3") ;
    html = html.replace(/<(\w[^>]*) style="([^"]*)"([^>]*)/gi, "<$1$3") ;
    html = html.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3") ;
    html = html.replace(/<\\?\?xml[^>]*>/gi, "") ;
    html = html.replace(/<\/?\w+:[^>]*>/gi, "") ;
    html = html.replace(/ /, " " );

    insertHTML( html ) ;
}
function onPaste() {
        var sHTML = GetClipboardHTML() ;
            var re = /<\w[^>]* class="?MsoNormal"?/gi ;
            if ( re.test(sHTML)){
                if ( confirm("你要粘贴的内容好象是从Word中拷出来的,是否要先清除Word格式再粘贴?") ){
                    cleanAndPaste( sHTML ) ;
                    return false ;
                }
                }
}

Javascript 相关文章推荐
JavaScript的parseInt 取整使用
May 09 Javascript
通过JavaScript控制字体大小的代码
Oct 04 Javascript
jquery、js调用iframe父窗口与子窗口元素的方法整理
Jul 31 Javascript
JavaScript通过join函数连接数组里所有元素的方法
Mar 20 Javascript
jQuery表格插件datatables用法详解
Nov 23 Javascript
使用Jasmine和Karma对AngularJS页面程序进行测试
Mar 05 Javascript
jQuery获取多种input值的简单实现方法
Jun 20 Javascript
浅谈JavaScript的自动垃圾收集机制
Dec 15 Javascript
jquery+html仿翻页相册功能
Dec 20 Javascript
JS中input表单隐藏域及其使用方法
Feb 13 Javascript
javaScript 连接打印机,打印小票的实例
Dec 29 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
Jul 23 Javascript
【消息提示组件】,兼容IE6/7&amp;&amp;FF2
Sep 04 #Javascript
一个用js实现控制台控件的代码
Sep 04 #Javascript
科讯商业版中用到的ajax空间与分页函数
Sep 02 #Javascript
PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)
Aug 31 #Javascript
给Javascript数组插入一条记录的代码
Aug 30 #Javascript
用javascript实现给出的盒子的序列是否可连为一矩型
Aug 30 #Javascript
Expandable &quot;Detail&quot; Table Rows
Aug 29 #Javascript
You might like
PHP安装全攻略:APACHE
2006/10/09 PHP
php 中的str_replace 函数总结
2007/04/27 PHP
Yii中Model(模型)的创建及使用方法
2015/12/28 PHP
PHP长网址与短网址的实现方法
2017/10/13 PHP
小议JavaScript中Generator和Iterator的使用
2015/07/29 Javascript
详解jQuery向动态生成的内容添加事件响应jQuery live()方法
2015/11/02 Javascript
javascript解决小数的加减乘除精度丢失的方案
2016/05/31 Javascript
JavaScript学习笔记整理_关于表达式和语句
2016/09/19 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
jQuery开源组件BootstrapValidator使用详解
2017/06/29 jQuery
微信小程序之电影影评小程序制作代码
2017/08/03 Javascript
原生js封装添加class,删除class的实例
2017/11/06 Javascript
vue中如何使用ztree
2018/02/06 Javascript
Angular2使用SVG自定义图表(条形图、折线图)组件示例
2019/05/10 Javascript
jQuery实现文本显示一段时间后隐藏的方法分析
2019/06/20 jQuery
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
2019/08/03 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
Python argv用法详解
2016/01/08 Python
Python3中的真除和Floor除法用法分析
2016/03/16 Python
python中的迭代和可迭代对象代码示例
2017/12/27 Python
利用numpy和pandas处理csv文件中的时间方法
2018/04/19 Python
pyqt5 禁止窗口最大化和禁止窗口拉伸的方法
2019/06/18 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
2019/09/10 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
Django ModelForm组件原理及用法详解
2020/10/12 Python
介绍Ibatis的核心类
2013/11/18 面试题
工程造价专业大学生自荐信
2013/10/01 职场文书
《再别康桥》教学反思
2014/02/12 职场文书
2014年小学植树节活动方案
2014/03/02 职场文书
大学生求职信范文
2014/05/24 职场文书
健康教育评估方案
2014/05/25 职场文书
企业催款函范本
2015/06/24 职场文书
数学备课组工作总结
2015/08/12 职场文书
关于感恩的素材句子(38句)
2019/11/11 职场文书
pytorch 如何把图像数据集进行划分成train,test和val
2021/05/31 Python
总结高并发下Nginx性能如何优化
2021/11/01 Servers