• 締切済み

フォームのテキストをリンク化するjavascript

ブログ等で利用されている、フォームのテキストにリンクをつけるjavascriptを教えてください。 (詳細) フォームのテキストを選択し、ボタンを押すとURLを入力するwindowが開くjavascript よろしくお願いします。

みんなの回答

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.3

以下、サンプルです。 IE6とFirefox(いずれもWin版)では動きましたが、他のブラウザではどうかわかりません。 <html> <head> <title></title> <script type="text/javascript"> <!-- function MakeAnchor(Oid){ var O = document.getElementById(Oid); if(! O)return; var Str; if(document.selection){ Str = document.selection.createRange().text } else if(O.selectionStart){ Str = O.value.substring(O.selectionStart,O.selectionEnd); } if(! Str) return; var URL = prompt('URL:','http://'); if(! URL) return; var SStr = '<a href="'+URL+'">'+Str+'<'+'/a>'; if(document.selection){ document.selection.createRange().text = SStr; } else { var SStart = O.selectionStart; var SEnd = O.selectionEnd; O.value = O.value.substring(0,SStart) + SStr + O.value.substring(SEnd,O.value.length); O.setSelectionRange(SStart,SEnd + SStr.length -Str.length); O.focus(); } } //--> </script> </head> <body> <form> <textarea id="TA01" cols=60 rows=10></textarea> </form> <input type="button" value="→&lt;A&gt;" onclick="MakeAnchor('TA01')"> </body> </html>

  • taseki
  • ベストアンサー率66% (155/233)
回答No.2

私も、ご質問の意味がちょっとよく解らなかったので推測ですが、 <INPUT TYPE="text">や<TEXTAREA>などテキストボックスの中で、たとえば「私のサイト」などという文字列を選択した状態で、ボタンをクリックするとURLを聞かれて入力し、その結果、「私のサイト」という部分がリンクテキストになった全文が完成する、というようなイメージですか? URLを尋ねるウィンドウ(ダイアログボックス)を開くのは window.prompt() 文で可能なので、今選択中のテキストをjavascriptで取得する方法ですよね。 var txtR = document.selection.createRange(); alert(txtR.text); で取得できると思います。

回答No.1

すいませんが、もうちょっと詳しくお願いできないでしょうか? >フォームのテキストを選択し、 このフォームのテキストというのは、 <INPUT TYPE="text">の事でしょうか? それとも平文の事でしょうか? また選択するというのはどういう事でしょう? <INPUT TYPE="text">の場合はフォーカスを宛てる (入力できる状態にする)という事ですか? 平文の場合は、ドラッグして色が反転している 状態の事でしょうか? >ボタンを押すとURLを入力するwindowが開く URLを入力するwindowというのはどういった物ですか? 通常のブラウザにはURL入力欄がありますが そういった物ではなく、<INPUT TYPE="text">などに 入力するwindowの事でしょうか? また、この開くwindowは選択したテキストと どのような関係があるのでしょう? 以上お願いします。

関連するQ&A

専門家に質問してみよう