近日,在处理IE和FF一些兼容问题的时候发现,剪切、复制和粘贴功能在FF的execCommand()中并不能被执行,还会报错,提示安全方面的问题。超链接不报错,但不会出现提示框,直接就是在选中文本或者图片加上<a href="undefined"></a>的标签,相信有很多同道中人遇到类似的问题。我想到实现超链接的办法,先实现execCommand("createLink"),从而加上<a href="undefined"></a>的标签,接着就是与贴图类似的出现一个输入框,把输入框接收到的文字用来替换上面出现的"undefined"。剪切的实现办法是在Iframe外加一个<div>。想办法把选中的内容赋值给这个div。
类似的复制也可以这么实现,问题是处理文本没什么问题,但如果选中的是图片,怎么把<img src=""></a>的这样一段innerHTML取出来呢?

解决方案 »

  1.   

    IE的大家都没有问题啊
    问题就是FF环境下的
      

  2.   

    用 document.body.createTextRange() 生成一个Range,然后把你要复制或剪切的东西放到里面去,就可以操作了,具体的搜一下 createTextRange 便会得到答案
      

  3.   

    要得到选 中的内容,可以用document.selection.createRange()
      

  4.   

    如  var range=document.selection.createRange()
       //range.text
       //range.htmlText
      

  5.   

    感谢kuiyouli
    但你提出来的都是在IE的情况下吧
      

  6.   

    var range=document.selection.createRange()
      

  7.   

    FF的渲染速度又差,DOM属性又少,实在不是什么好的浏览器. 搞不明白为什么这么热. 不就是安全性上比IE好点而已.这还都拜于他的功能少得可怜所赐. 最后为难的都是搞开发的人, 还是IE比较贴切.
      

  8.   

    gzdiablo() 
    -------------
    用FF热,估计也是一部分搞开发人带头用才热的
    这大概能作为一部分人炫耀的资本
      

  9.   

    FF其实并不热吧
    呵呵,以前我们做的根本就不去考虑FF的环境
    只是有时间了,考虑一下这个问题,多多少少算是一种提高吧