1

選択したテキストを bbcode タグでラップする非常に単純なリッチ テキスト エディターを作成しようとしています。

Javascript:

<script type="text/javascript">
function wrapText(elementID, openTag, closeTag) {
    var textArea = document.getElementById(elementID);

    if (typeof(textArea.selectionStart) != 'undefined') {
        var begin = textArea.value.substr(0, textArea.selectionStart);
        var selection = textArea.value.substr(textArea.selectionStart, textArea.selectionEnd - textArea.selectionStart);
        var end = textArea.value.substr(textArea.selectionEnd);
        textArea.value = begin + openTag + selection + closeTag + end;
    }
}
</script>

HTML:

<form action="" method="POST">
<button type="button" onclick="wrapText('edit','[b]','[/b]');" >B</button>
<button type="button" onclick="wrapText('edit','[i]','[/i]');" >I</button>
<button type="button" onclick="wrapText('edit','[u]','[/u]');" >U</button><br />
<textarea id="edit" name="message" rows="10" cols="50">
This is some example text.
</textarea><br />
<br /><input type="submit" class="submit" value="Submit" />
</form>

IE ではバージョン 10 でのみ動作することを除いて、これはほとんどの場合問題なく動作するようです。

JSFiddle

このクロスブラウザ互換性を高めて IE 8 で動作するようにするには、何を追加または変更できますか?

私は jQuery の使用に反対しているわけではありませんが、jQuery がないと本当にこれほど複雑になる場合を除き、使用したくないと思います。

4

0 に答える 0