0

iframe内のcontenteditablediv-container内にあるsrcやid、または選択した画像のいずれかを取得するのに問題があります。getSelection()を使用して、選択したテキスト情報を取得することができます。次のように呼び出します。

window.document.getElementById("monitor").contentWindow.document.getSelection();
// "monitor" = iframe id

しかし、テキストの代わりに画像を選択すると、空の結果が得られます。何時間も検索しましたが、解決策が見つかりませんでした。誰かがこの問題を解決する方法を知っていますか?(私はFirefox 4を使用しています)

4

1 に答える 1

2

window.getSelection()document.getSelection()HTML5準拠のブラウザのエイリアスです)はSelection、文字列ではなくオブジェクトを返します(メソッドが選択されたテキストを返すため、表面的には文字列のように見えtoString()ます)。このための最も有用な側面は、を使用して選択を表す1つ以上のDOM範囲オブジェクトを取得する機能getRangeAt()です。

Rangeを取得したら、それに含まれるすべてのDOMノードを取得するのは少し注意が必要です。Rangeの実装にメソッドを追加する私のRangyライブラリを使用できます。getNodes()

var sel = rangy.getSelection();
if (sel.rangeCount) {
    var range = sel.getRangeAt(0);
    var elements = range.getNodes([1]);
    for (var i = 0; i < elements.length; ++i) {
        alert("Selected element: " + elements[i].tagName);
    }
}
于 2011-04-15T13:37:21.367 に答える