2012-04-09 4 views
0

このスクリプトで何か問題があります。テキストボックス内の選択されたテキスト領域にhtmlタグを追加することができます。 Dreamweaverでライブを見ている間はうまく動作します。まさにそれがどのように訴えられているか。ブラウザでは何もしません。Javascriptが選択されています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(); 
     } 
    } 
} 

答えて

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> 
関連する問題