博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自己的JS 监听器。用于选择文字
阅读量:6440 次
发布时间:2019-06-23

本文共 1946 字,大约阅读时间需要 6 分钟。

hot3.png

  主要代码:

  function AttachEvent(obj, eventName, handler, argsObject) {

            var eventHandler = handler;
            if (argsObject) {
                eventHandler =
               function (e) {
                   handler.call(this, argsObject);
               }
            }
            if (window.attachEvent)//IE
                obj.attachEvent("on" + eventName, eventHandler);
            else//FF
                obj.addEventListener(eventName, eventHandler, false);
        }

用监听器绑定具体的方法与对应的处理函数。 

当然也可以直接用JQuery的绑定。

实例:

<script type="text/javascript">

        var SWord;
        var IDS;
        function onReady() {
            IDS = {
                txtAlarmID: '<%= txtAlarmID.ClientID %>',
                txtLogicType: '<%= txtLogicType.ClientID %>',
                ddlDeviceType: '<%= ddlDeviceType.ClientID %>',
                textSolution: '<%= textSolution.ClientID %>',
                txtLogicType: '<%= txtLogicType.ClientID %>'
            };
            SWord =
            {
                text: '',
                Start: 0,
                End: 0
            };
            var textareaSo = document.getElementById(IDS.textSolution);
            AttachEvent(textareaSo, "click", clickSelectedText, IDS.textSolution);
            var textLogicType = document.getElementById(IDS.txtLogicType);
            AttachEvent(textLogicType, "click", clickSelectedText, IDS.txtLogicType);
        };
        function AttachEvent(obj, eventName, handler, argsObject) {
            var eventHandler = handler;
            if (argsObject) {
                eventHandler =
               function (e) {
                   handler.call(this, argsObject);
               }
            }
            if (window.attachEvent)//IE
                obj.attachEvent("on" + eventName, eventHandler);
            else//FF
                obj.addEventListener(eventName, eventHandler, false);
        }
        function clickSelectedText(Id) {
            var o = document.getElementById(Id);
            if (document.selection) {
                var k = document.selection.createRange().text;
                if (k.lenght > 0)
                {
                
                }
            } else {
                var p1 = o.selectionStart; var p2 = o.selectionEnd;
                if (p1 || p1 == '0') {
                    if (p1 != p2) {//选中
                        SWord.Start = p1;
                        SWord.End = p2;
                        SWord.word = o.value.substring(p1, p2);
                    }
                    else //点击
                    {
                        if (p1 > SWord.Start && p2 < SWord.End) {
                            document.getElementById("Div1").innerHTML = SWord.word;
                        }
                        SWord.Start = 0;
                        SWord.End = 0;
                        SWord.word = '';
                    }
                }
            }
        }
      
本人声明:沐海(http://my.oschina.net/mahaisong) 以上文章是经过本人设计实践和阅读其他文档得出。如果需要探讨或指教可以留言!欢迎交流!

转载于:https://my.oschina.net/mahaisong/blog/145367

你可能感兴趣的文章
别做操之过急的”无效将军”,做实实在在的”日拱一卒” 纵使一年不将军,不可一日不拱卒...
查看>>
Oracle Grid Infrastructure: Understanding Split-Brain Node Eviction (文档 ID 1546004.1)
查看>>
Linux改变进程优先级的nice命令
查看>>
**16.app后端如何保证通讯安全--url签名
查看>>
win32窗口机制之CreateWindow
查看>>
C/C++ 一段代码区分数组指针|指针数组|函数指针|函数指针数组
查看>>
awakeFromNib小总结
查看>>
java知识大全积累篇
查看>>
善于总结所做所学的内容
查看>>
Lua-简洁、轻量、可扩展的脚本语言
查看>>
org.hibernate.MappingException: entity class not found hbm可以解析,但是实体类不能解析...
查看>>
Android -- Drag&&Drop
查看>>
Extjs4:改变Grid单元格背景色(转载)
查看>>
中医无绝症[转载]
查看>>
ZendStudio10.6.1如何安装最新的集成svn小工具?
查看>>
PHP中$_SERVER的详细参数与说明
查看>>
jquery easyui datagrid mvc server端分页排序筛选的实现
查看>>
去了大公司就一定能学到很牛的技术么?
查看>>
methanol 模块化的可定制的网页爬虫软件,主要的优点是速度快。
查看>>
IOS开发之表视图(UITableView)
查看>>