0

このスクリプトで問題が発生しています。テキストボックス内の選択したテキスト領域にhtmlタグを追加することが想定されています。dreamweaverでライブ表示している間は、問題なく動作します。まさにそれがどのように想定されているか。ブラウザでは何もしません。

何かご意見は?

関数はで呼び出されonclick="formatText(content,'b')"ます。

function formatText(el, tag) {
    var selectedText = document.selection ? document.selection.createRange().text
            : el.value.substring(el.selectionStart, el.selectionEnd);
    alert(selectedText);
    if (selectedText != '') {
        var newText = '<' + tag + '>' + selectedText + '</' + tag + '>';
        el.value = el.value.replace(selectedText, newText);
        document.getElementById(el).focus();
    } else {
        if (document.getElementById(tag).value == "0") {
            document.getElementById(tag).value = "1";
            document.getElementById(el).value = document.getElementById(el).value
                    + "<" + tag + ">";
            document.getElementById(el).focus();
        } else {
            document.getElementById(tag).value = "0";
            document.getElementById(el).value = document.getElementById(el).value
                    + "</" + tag + ">";
            document.getElementById(el).focus();
        }
    }
}
4

1 に答える 1

0

使用を検討したいものは jQuery です。これには、やりたいことのほとんどを実行するための機能が組み込まれています。時間をかけて学ぶ価値があります。( http://jquery.com/を参照)

そうは言っても、私はあなたのコードをいくつか編集しました。「onclick」イベントを「onmousedown」に変更する必要があります。「onclick」のままにしておくと、選択したテキストのフォーカスが削除され、メソッドが機能しなくなります.elseステートメントが何をすべきかわかりませんが、なので全然更新してません。うまくいけば、これはいくつかの助けになります。

乾杯。

<script type="text/javascript">

function formatText( el , tag )
{
    var selectedText = "" + document.getSelection();

    if ( selectedText.length > 0 )
    {
        var textWithTag = "&lt;" + tag + "&gt;" + selectedText + "&lt;/" + tag + "&gt;";
        el.innerHTML = el.innerHTML.replace( selectedText , textWithTag );
    }
}

</script>

<div id="test">Something</div>
<div onmousedown='formatText( document.getElementById("test") , "span style=\"color:red\"" );'>Click</div>
于 2012-04-09T15:56:19.363 に答える