0
iframeを使用して独自のリッチテキストエディタを実装しようとしています。しかし、空のリッチテキストエディタの中をクリックすると、キャレットやマウスカーソルが表示されません。 Googleでチェックした後、私はiframeにいくつかのhtmlを追加する必要があることを発見しました。しかし、以下の私のコードは、最初のリッチテキストエディタにブレークタグを追加し、2番目のリッチテキストエディタには追加しません。あなたのプラグインで一致する各要素をループする必要がある、私は.......ここで間違っ空のiframeにキャレットが表示されない
$.fn.createRichTextEditor = function(width,height="auto") {
var iframeDocument;
var iframeDocumentId = this.attr("id") + "-rte-editor";
var newHtml = "<div id='rte-" + iframeDocumentId + "' class='rte'>" +
"<ul class='rte-toolbar'>" +
"<li id='bold'><button id='rte-boldBtn-" + iframeDocumentId + "' class='rte-button' value='bold' title='Bold'></button></li>" +
"<li id='italic'><button id='rte-italicBtn-" + iframeDocumentId + "' class='rte-button' value='italic' title='Italic'></button></li>" +
"<li id='underline'><button id='rte-underlineBtn-" + iframeDocumentId + "' class='rte-button' value='underline' title='Underline'></button></li>" +
"<li id='createLink'><button id='rte-createLinkBtn-" + iframeDocumentId + "' class='rte-button-link' value='createLink' title='Link'></button></li>" +
"<li id='unlink'><button id='rte-unlinkBtn-" + iframeDocumentId + "' class='rte-button-link' value='unlink' title='Unlink'></button></li>" +
"</ul>" +
"<iframe class='rte-iframe' id='" + iframeDocumentId + "' frameBorder='0'></iframe>" +
"</div>";
this.after(newHtml);
this.css('display', 'none');
var iframe = document.getElementById(iframeDocumentId);
var rte = iframe.parentElement;
$(rte).css('width', width);
$(rte).css('border', '1px solid #ccc');
$(iframe).on('load', function() {
$(iframe).width("100%");
$(iframe).height(height);
iframeDocument = iframe.contentDocument;
iframeDocument.designMode = 'On';
$(iframeDocument).find('body').html('<br><br/>');
});
};
ので、あなたがLoadイベントを必要としませんiframeにはソースがありません+あなたはiframeウィンドウにフォーカスする必要があります。ここにデモがあります:[https://jsfiddle.net/j1p2m692/2/](https://jsfiddle.net/j1p2m692/2/) –
動作しません。負荷を取り除くと何も編集できない – coffeeak
実際、Firefoxでは動作しません!ここに別の例があり、ChromeとFirefoxの両方で作業しています[https://jsfiddle.net/d98mhv0s/](https://jsfiddle.net/d98mhv0s/) –