ドロップ位置の座標を取得できる場合(これは可能であると思います)、次のように実行できます(テストされていません)。ビューポートを基準にしたドロップ位置の座標を変数として、ドロップされた画像を変数として持っていると仮定x
しy
ますimg
。
デモ: http: //jsfiddle.net/KZqNj/
コード:
var range;
// Try the standards-based way first
if (document.caretPositionFromPoint) {
var pos = document.caretPositionFromPoint(x, y);
range = document.createRange();
range.setStart(pos.offsetNode, pos.offset);
range.collapse();
range.insertNode(img);
}
// Next, the WebKit way
else if (document.caretRangeFromPoint) {
range = document.caretRangeFromPoint(x, y);
range.insertNode(img);
}
// Finally, the IE way
else if (document.body.createTextRange) {
range = document.body.createTextRange();
range.moveToPoint(x, y);
var spanId = "temp_" + ("" + Math.random()).slice(2);
range.pasteHTML('<span id="' + spanId + '"> </span>');
var span = document.getElementById(spanId);
span.parentNode.replaceChild(img, span);
}
これは最近のWebKit、Opera、Mozillaブラウザで機能しますが、Firefoxにのみ実装されていdocument.caretPositionFromPoint()
ます。
参照: