2011-01-07 57 views
1

一段时间以来,我的头撞在墙上。execCommand后选择图像

我有一个插入图像的编辑器,但在execCommand运行后我无法在Firefox中选择新插入的图像。这是我的代码。

 var editor = this; 
     var sel = editor._getSelection(); 
     var range = editor._createRange(sel);   
     editor._doc.execCommand("insertimage", false, imgURL); 
     img = range.startContainer.previousSibling; 
     console.log(img); 

回答

0

不要使用execCommand,请改用range.insertNode。

var img = document.createElement('img'); 
img.src = 'http://www.carsyouwilldrive.com/wp-content/uploads/2009/06/futurecar1.jpg'; 

var selection = document.defaultView.getSelection(); 
var range = selection.getRangeAt(0); 
range.insertNode(img); 

DEMO:http://jsbin.com/ogane4/5/edit

+0

我同意的情绪,但这不会在IE浏览器。另外,OP使用的(未指定的)编辑器几乎肯定会包含一个iframe,并且有自己的范围和选择API,这可能会暴露一个跨浏览器的`insertNode()`方法。 – 2011-01-08 17:42:28