2011-01-07 4 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()'メソッドを公開する可能性があります。 –

+0

@Tim OPには特にFirefoxが掲載されていたので、IEは問題ではないと思いました。私はそれが必要な場合はサポートすることができます...しかし、OPからより多くの情報が必要です。 – Hemlock

関連する問題