私のサイトでは、iframe を使用する WYSIWYG エディターを使用しています。
リンクを追加するためにテキストをダブルクリックして選択すると、Chrome、Safari、および Firefox で、選択したテキストが正しいテキストになり、リンクが追加されます。
ただし、代わりに画像をクリックすると、選択は Firefox でのみ行われます。Chrome と Safari には空の選択があり、画像を選択してリンクを追加するには、手動選択のようにマウスをドラッグする必要があります。
私のコードは次のとおりです。
var sel = parent.document.getElementById('myframe').contentWindow.document.getSelection();
if (sel.rangeCount > 0) {
var range = sel.getRangeAt (0);
var docFragment = range.cloneContents ();
var tmpDiv = document.createElement ("div");
tmpDiv.appendChild (docFragment);
selHTML = tmpDiv.innerHTML;
}
if (selHTML != '') {
parent.document.getElementById('myframe').contentWindow.document.execCommand(id,false,value);
}
この問題を解決する方法はありますか?
前もって感謝します。
@Tim の提案に従って、コードをそのコードに変更します。
var iframeWin = parent.document.getElementById('myframe').contentWindow;
var iframeDoc = iframeWin.document;
var sel = iframeWin.getSelection();
var range = iframeDoc.createRange();
var referenceNode = document.getElementsByTagName("img").item(0);
range.selectNode(referenceNode);
sel.removeAllRanges();
sel.addRange(range);
parent.document.getElementById('myframe').contentWindow.document.execCommand(id,false,value);
しかし、まだ機能しません。他に提案はありますか?