0

選択した領域を iFrame から取得しようとしています。ここに同様の投稿がいくつかありますが、どれも機能しないため、もう一度試してみることにしました.

function getIframeSelectionArea() {
var frm = frames['iFrameTextBody'].document;
var win = frm.contentWindow;
alert(win.getSelection().toString());
}

したがって、私が実装しようとしているのは、stackoverflow post textarea で実装されているものと似ています。彼らがサードパーティの wysiwyg エディタのバリエーションを使用していることはわかっています。純粋に教育目的でホイールを再イベントしようとしています。

私の実装は簡単です。テキストを選択して、太字をクリックする<b></b>と、選択した領域の両側にタグが表示されます。私は同じことを行うために execCommand('bold', false, null) を使用していることを知っています。先ほども言いましたが、これは実験です。

アイデアは、選択した領域が返されたら、次の関数を呼び出すことです。

    function addhtmlTag(str){
    var frm = frames['iFrameTextBody'].document;
    var frmbody = frm.getElementsByTagName('body')[0];
    var bold_tag = frm.createElement('b');
    bold_tag.textContent = str;
    frmbody.appendChild(bold_tag);
}

どんな洞察も大歓迎です!

乾杯

ドジェイ

4

1 に答える 1

1

次のような意味ですか。

function getSelectionFrame() {
   var frame = document.getElementById(frameId);
   var frameWindow = frame.contentWindow;
   var frameDocument = frameWindow.document;
   if (frameDocument.getSelection) {
      return frameDocument.getSelection();
   } else {
      return frameDocument.selection.createRange().text;
   }
}
于 2012-07-04T04:17:20.880 に答える