你这是从哪里拷贝来的程序?怎么我看写的有问题?
if (docSel.parentElement().tagName != "INPUT")
==>
if (docSel.parentElement.tagName != "INPUT")parentElement是属性,不是方法,所以不能加()

解决方案 »

  1.   

    function a(obj, reg, inputStr)
    {
    var docSel= document.selection.createRange()//创建一个textRange对象docSel,
    if (docSel.parentElement().tagName != "INPUT")return false;//如果这个对象是INPUT类型对象的一部分,那么就结束操作返回false,//否则继续
    oSel = docSel.duplicate();//得到docSel对象的副本oSel,但是oSel仍旧是docSel的引用,他们指向同一个对象
    oSel.text = ""; //这样做将删除当前被选中的字符,
    var srcRange = obj.createTextRange();//将obj元素的内容创建一个textRange对象srcRange
    oSel.setEndPoint("StartToStart", srcRange);//设置oSel的开始端点为srcRange结束端点
    var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length);//好像是要做:把inputstr的内容+obj元素的内容,因为这时候oSel.text.length===0,不知道为什么写这么复杂
    return reg.test(str);//用正则表达式测试这个str是否符合规则,并返回测试结果
    }//不知道说错了没有,光看这些代码有点昏,猜想这个函数是希望替换被选中的字符为inputstr,并且需要符合一定的规则。