3

編集可能に設定されているHTML5/javascript/phpプロジェクトに取り組んでいます。

ユーザーが押すctrl + bとテキストが太字になることはわかっていますが、ユーザーがWebページの適切なボタンをクリックして同じアクションを実行できるようにすることもできます。

つまり、ユーザーが入力すると、通常のテキストになります。Webページの太字のボタンをクリックすると<strong>、セクションのhtmlに追加されます。入力した内容はすべて、ボタンをもう一度押してから追加するまで保持されます。</strong>

ただし、追加した時点では<strong>自動的に追加されているようで、それ</strong>を止めたいと思います。私はこれを正しい方法で行っていますか、それともこれを達成するためのより良い方法がありますか?

以下は私が使おうとしているjavascriptです

function enableDisableBold(section)
{
    var boldEnabled = $("#boldEnabled").val();
    var content = $("#" + section).html();
    var newContent;
    if (boldEnabled == "true")
    {
        $("#btnBold").removeClass("formatButtonsActivated");
        $("#boldEnabled").val("false");
        //newContent = content + "</strong>";
        //$("#" + section).html(newContent);
    }
    else
    {
        $("#btnBold").addClass("formatButtonsActivated");
        $("#boldEnabled").val("true");
        newContent = content + "<strong>";
        $("#" + section).html(newContent.replace("</strong>", ""));
    }

    alert($("#" + section).html());
} 

あなたが提供できるどんな助けにも感謝します。

更新 私が達成したいことを実行する別の解決策に出くわしたばかりですが、わずかな問題があります。関数呼び出しの最後に、次のコードを実行します。

var article = document.getElementById(section); article.focus(); document.execCommand( "Bold"、false、null);

問題は、これがInternet Explorerで正常に機能していることですが、Chromeでは問題が発生しています。フォーカスを<section>タグに戻すと、カーソルがテキストの先頭に戻ります。私はどこかでonfocus="this.value = this.value;"コントロールを置くことを読みましたが、これは役に立ちません。

カーソルを文字の最後に戻す方法を見つけようとしていましたが、実際にはカーソルを元の場所に戻す必要がありました。これはできることですか。

4

1 に答える 1

0

強力な要素を作成し、それにコンテンツを追加します

$('<strong />').append(content);
于 2012-10-08T13:50:38.843 に答える