0

画像をアロハ編集可能フィールドにドラッグアンドドロップしたい。

私はat.tapo.aloha.plugins.Imageプラグインを見ています。これは素晴らしいようです。

ただし、サムネイルを操作するには、このプラグインを適応させる必要があります。サムネイルをドラッグして、編集可能なalohaにドロップすると、実際の画像を使用するためにhtmlコードがその場で変更されます。

    GENTICS.Aloha.EventRegistry.subscribe(GENTICS.Aloha, 'editableCreated', function(event, editable) {
        var the_obj = editable.obj;
        jQuery(editable.obj).bind('drop', function(event){
            var e = event.originalEvent;
            var files = e.dataTransfer.files;
            var count = files.length;

            if (count < 1) {
                var node = e.dataTransfer.mozSourceNode;
                if (node.tagName === 'IMG') {
                    var html = '<img ....>'; //build the real image html code  
                    /// The current selection but I want the drop position
                    var range = GENTICS.Aloha.Selection.getRangeObject();
                    if (!jQuery.isEmptyObject(range)) {
                        GENTICS.Utils.Dom.insertIntoDOM(jQuery(html), range, the_obj);
                    }
                    return false;
                }
                return true;
            }
    }

アロハフィールドで何かが選択されている場合は問題なく動作します。範囲を取得して、HTMLをDOMの選択位置に挿入できます。

ただし、画像をドロップした場所に対応する範囲オブジェクトを取得したいと思います。どうやってするか?

アイデアを事前に感謝します。

4

2 に答える 2

0

一般的にこれを行うために私が知っている簡単な方法はありません。ドロップポイントのピクセル座標を(おそらくmousemoveイベントから)取得してから、そのポイントの範囲を取得しようとすることができます。そのタスクの場合、次の質問への回答はそれをうまくまとめています。

FF/Webkitのピクセル位置から折りたたまれた範囲を作成する

于 2011-10-03T23:04:00.787 に答える
0

Tim Downは、簡単な方法はないことを示し、最終的に回避策を使用しました。

GENTICS.Aloha.EventRegistry.subscribe(GENTICS.Aloha, 'editableCreated', function(event, editable) {
    var the_obj = editable.obj;
    jQuery(editable.obj).bind('drop', function(event){
        setTimeout(function () {
            //at this point the html is updated and can be postprocessed 
            //in order to turn thumbnails into the real image

            //force the focus in order to make sure that the editable is activated
            //this will cause the deactivated event to be triggered, and the content to be saved
            the_obj.focus(); 
        }, 0);
    });
});
于 2011-10-04T09:05:38.310 に答える