3
私のサイトでは、iframeを使用するWYSIWYGエディタを使用しています。Chromeの画像でgetSelectionが機能しない
ダブルクリックでテキストを選択してリンクを追加すると、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の提案に応じて1つにコードを変更します。
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);
しかし、まだない作品。これ以上の提案はありますか?
感謝。しかし実際には働いていません。リンクを追加した後にクリックすると、実際には画像上にリンクではなくテキストとしてリンクが追加されます。 – novellino
@novellino:リンク作成に失敗する前に実際に画像を選択していますか? –
@novellino:Chromeの作品:http://jsfiddle.net/x49hv/4/ –