你把HTML写规范了就不会有问题了,记得/关闭元素

解决方案 »

  1.   

    那就获取外层的元素,没有就加个上去,然后利用外层元素的innerHTML来取
      

  2.   

    不行啊,我在外围加了元素,在IE里取innerhtml,还是一样的
    FF没试.....
    有没有更好的办法?
      

  3.   

    来了,这样做恐怕不太好吧,给用户的权限有点大,最好换个思路给用户:)
    如果要做可以试试下面的<textarea id="textarea1" style="width:200;height:200">
    </textarea>
    <script language="javascript">
    function Gethtmlcode() {
        var rng=null,html="";
        if (window.document.selection && window.document.selection.createRange){
                rng=window.document.selection.createRange();
                html=rng.htmlText;
        }else if (window.getSelection){
                rng=window.getSelection();
                if (rng.rangeCount > 0 && window.XMLSerializer){
                        rng=rng.getRangeAt(0);
                        html=new XMLSerializer().serializeToString(rng.cloneContents());
                }
        }
        document.getElementById("div1").innerHTML=(html);
        var objs=document.getElementById("div1").getElementsByTagName("a")
        if(objs)
        {
         for(var i=0;i<objs.length;i++)
         {
         alert(objs[i].target)
         }
        }else
        {
         alert("没选中<A>")
        }
    }
    </script>
    <table border="1" contenteditable="true">
    <tr>
    <td><p align="center"><a href="http://qq.ip138.com/idsearch/" target="_blank">身份证号码查询验证</a>11111111</td>
    <td><a href="http://www.ip138.com/ems" target="_blank"><p align="center">EMS邮政速递查询</a>2222222</td>
    </tr>
    <tr>
    <td><p align="center"><a href="http://qq.ip138.com/idsearch/" target="_blank">身份证号码查询验证</a>333</td>
    <td><a href="http://www.ip138.com/ems" target="_blank"><p align="center">EMS邮政速递查询</a>4444</td>
    </tr>
    </table>
    <input name="button1" type="button" value="按" onclick="Gethtmlcode()">
    <div id="div1" style="display:none"></div>
      

  4.   

    hbhbhbhbhb1021
    理解错了吧?
    我并不要想知道到底有没有target,以及是否有引号
    我只想要更准确的html代码...和源文件一样的代码.
    使用rng.htmlText和new XMLSerializer().serializeToString(rng.cloneContents())都不准确...
      

  5.   

    可能跟你Mozilla的版本有关,我刚你的步骤操作,除了Mozilla下多出一些空格代码是一样的啊
      

  6.   

    to:wldlzt 
    我的FF是最近版的
    IE也不正常啊...
      

  7.   

    ff等几个符合dom2标准的浏览器,在解释页面的时候都是将代码规范成xhtml的。
    你可以用dom做几个元素并设置属性放到一个父元素里,然后alert(父元素.innerHTML)
    ie下你会看到标签是大写,而且很多属性都没有双引号封闭。
    或者打开一个页面,分别用ie和ff另存成html格式,查看html的代码,跟你通过源文件看到的代码都是不同的。
    如果你用过某些在线的富文本编辑器,看看ie和ff下生成的代码。
    js依赖浏览器,引擎不同,结果也会有些出入。