• ベストアンサー

alertでHTMLのコードが出てしまう。

今、自分で作ってるプログラムの話です。。 alert に、HTMLのコードが入ったもの<BR>とか、を入れた場合、どうもそのまま<BR> と表示されてしまいます。 改行は、してもしなくてもいいんですが、巧い方法って有りますでしょうか? やや困りです。 宜しくお願いします。 ちょっと具体的に書きますと。。 まず、画面Aで 画面Bのタイトルを入力してもらいます。 その時、場合によっては<BR>を入れてもらい、改行、もしくは<FONT>等で色の指定等してもらいます。 画面Bには選択欄が有り、そこの選択欄が正しく選択されてない場合、 (画面Bのタイトル)が、選択されてません というalertを出す仕組みです。 つまり画面Aにて、「画面B<BR>のタイトル」と入力した場合、 alert でも、 画面B<BR>のタイトルが、選択されてません と表示されてしまいます。 という感じですが、HTMLタグがalertで出ない方法です。 こうしたらいいんじゃない?っていうアイディアでも構いません。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#1785
noname#1785
回答No.4

言語はJavaScriptという前提の元で。 取得した値を検索して、<BR>があるかどうかを判定し、あれば置き換える、という処理でいいのではないでしょうか? 実際にテストしていないので、正常に動くかどうかわかりませんが、 ver strValue=document.***.***.value; ↑ここは、入力された値が入るように変えてください。 res=strValue.indexOf("<BR>",0) //<BR>を検索 if(res != -1){ //該当がなければ-1が返るので  strMsg=strValue.replace("<BR>","\n"); //<BR>を改行に置き換え } alert(strMsg); といった感じでしょうか。 <BR>の大文字、小文字の問題等出てくると思いますので、調整してください。 改行をしないようにしたいのであれば、replaceの"\n"の部分を""にすればいいと思います。

da1yan
質問者

お礼

JavaScriptで。って事を書き忘れてましたね。 登録したカテゴリーがそうだったので、うっかりしてました。 っていうか、ASPです。 ごていねいに有り難うございました。 最初の人のお返事にも書いたんですけど、なんとなく解決しました。 問題は<BR>だけじゃなくて、全てのタグだったんです。 <>を検出して置き換える関数を作成しました。 が、半角も全角もお構いなしに検出してしまうので、困ったもんです(笑)

その他の回答 (4)

  • leaz024
  • ベストアンサー率75% (398/526)
回答No.5

詳しい状況が分からないので何とも言えませんが、入力チェック時の警告は、alertでなければなりませんか? 別に何でもよいのであれば、サイズなどを指定したHTMLをポップアップしてもよいのではないでしょうか。これならタグは本来の働きをするだけで、表示されることはないですよね。 次の関数を追加して、 function warn(str) { var win = open('_blank', 'caution', 'width=300,height=200'); win.document.write('<HTML><BODY><CENTER><FORM name="f">'); win.document.write(str + '<BR><BR>'); win.document.write('<INPUT type="button" name="b" value="閉じる" onClick="window.close()">'); win.document.write('</FORM></CENTER></BODY></HTML>'); win.focus(); } 更に画面Bのalert文を、下記のように変えてみて下さい。 alert(message)   ↓ warn(message) ※alertの引数を、そのままwarnに渡して下さい。

da1yan
質問者

お礼

どうも有り難うございます。 一応試してみました。が、やっぱしJavaScriptの方が良さそうです。。 下の方に加えておきましたが、<>で検出して中身を外す関数を、頑張って作りました! 一応、alertに渡す前にASPを使って外す、というものです。 とりあえずは、それで解決しそうです。 <が片方だけだった時とか、全角で打たれた時とか、いろいろ謎は多いんですけどね。

  • PtoP
  • ベストアンサー率27% (24/86)
回答No.3

入力された文字列から「<>」に、はさまれた部分を探し出して、削除するなり、他の文字に置き換える処理を入れてみるのは、いかがでしょう?

  • madman
  • ベストアンサー率24% (612/2465)
回答No.2

画面B\rのタイトル としてみてください。

  • quenista
  • ベストアンサー率28% (122/425)
回答No.1

何の言語か解らないですが...。 要は、「画面B<BR>のタイトル」を、「画面Bのタイトル」と表示したいのですよね? 単純に、”<”~”>”を削除したら駄目なのですか? タグは、基本的に”<”と”>”で囲まれてる筈ですので...。 多重括弧だけ検出すれば、問題無いと思うのですが? 質問の意味を取り違えてたら、すいません。

da1yan
質問者

お礼

有り難うござます。ただ、そのやり方が解らなくて。。 でも、なんとなく解決しました!

関連するQ&A

  • HTMLタグを説明するページをつくるには

    HTMLのタグを説明するのにたとえば、 ○○<BR>××→○○           ××      と表示するとき、→の左側をそのまま(改行しないで<BR>の表示のままで)表示するにはどうすればいいでしょうか?

    • ベストアンサー
    • HTML
  • 表の作成ができません!(HTML)

    メモ帳にHTML記述でホームページを作っています。 表を作成したいのですが、表示されません。 <html> <head> <title>~</title> </head> <body> <table border=1> <tr> <td>AAA</td> <td> <br>aaaaaaaaaaa <br>bbbbbbbbbbb <br>ccccccccccc </td> </tr> <tr> <td>BBB</td> <td> <br>dddddddddd <br>eeeeeeeeee </td> </tr> </table> </body> </html> で作っています。 (※aaaaaaは、たとえです) 同じタグ記述で、改行のない表を作ったら、これは表示されました。 表内に改行させた場合は、エクスプローラには表示されないのでしょうか?

  • HTMLにcgiを使って表示していますが、TEXTAREAの改行ができません

    今、ホームページの作成をしています。 その際入力の画面で送信ボタンを押すと、cgiを使って入力確認の画面を 表示するようにしたいのですが、入力画面のTHML言語でTEXTAREAを使うと その後の入力確認画面で入力通の改行ができません。 入力確認画面のソースを表示すると、入力画面で指定した箇所で改行はされているようなのですが、各行の最後にHTMLLの改行タグ<BR>が表示されていません。 改行タグを各行ごとに入れられれば良いのですが、どうしてもやり方が わからないので、良いやり方があれば教えていただけませんか。 cgi上ではC言語を使い、ホームページを表示しています。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • ヤフオク出品後の編集で改行が出来ません。

    新しい出品フォームで初めて昨日出品したのですが、 出品時の時に説明欄を「詳細は後ほど・・」で通常入力にしてしまいました(泣)。。 当方HTMLを使って出品するので今、説明文を更新をしようと思ったら 一度「通常入力」で出品すると、後から「HTMLタグ入力」で編集が出来ない事に気づきました。 仕方なく作成した文章の<BR>などのHTMLタグをすべて消し文章だけにし、 「通常入力」画面でEnterを押し改行して文章を作成したところ プレビュー画面で確認すると改行部分に&nbsp;と何故か出てしまいます。 そこで試しに新たに「通常入力」で出品し、説明欄に文字を入れ改行してプレビューで確認するときちんと改行が出来ていました。 ところが一度出品した商品を更新しようと、「通常入力」で説明文を編集、改行を入れると&nbsp;の文字がやはり出てきてしまうようです。 なぜ通常入力で改行をしているのに、HTMLタグが出てしまうのでしょうか? どうやって改行すれば良いのでしょうか。。。 もう既に入札が入ってしまっているので再出品は考えていないので非常に困っています。 お手数をお掛けしますが改行の方法を教えて下さい。 よろしくお願いします!

  • HTMLの質問

    HTMLでフォームを作成しているのですが、 入力してプレビュー画面で、ユーザーが改行を入れたところには、 そのまま反映されて、しかも、こちらで最大文字数又は、PIX数を制限してしまう方法は、 あるでしょうか? <PRE>タグですと、改行されるのですが、逆に改行しないとダラダラ長くなって しまいます。 どなたかご教授いただけないでしょうか。

    • ベストアンサー
    • HTML
  • HTMLで誕生石と星座をアラート表示するスクリプト

    HTMLで誕生石と星座をアラート表示するスクリプトを作っています。 プロンプトで入力された数字(19900425)から誕生石と星座をアラート表示するスクリプトを作っています。 この場合、switchで行う場合、それぞれどのようにコードを組めばいいのでしょうか? できれば解説のコメント付きでお願いします。 どうぞよろしくお願いします。

  • アメーバブログで改行

    アメーバでブログをやっているんですが 投稿画面で、改行はできても 表示を確認してみると改行ができていません HTMLタグで<br>と入れても全然だめで…。

  • HTMLタグが入力できません

    私、今、HPを作ろうと思っているんですけれども、HTML式でやっています。 それで、『トップ』や、『プロフィール』などのタグを入力してやってみたら、そこだけないんです。 ちゃんと入力もしましたし、内容もぜんぜん間違っていません。 ちなみに、入力したタグです。 hr width="500"> <a href="index.html">トップ</a>  <a href="about.html">プロフィール</a>  <a href="link.html">リンク集</a><br> <hr width="500"><br><br> 早めにお願いします。早く知りたいので...。

  • オークション出品HTMLが入力できない(再質問です)

    宜しくお願いします。 以前質問し、他サイトでも質問したのですがまだ 直らないので、他サイトを締め切り再度質問させてください。 久しぶりにyahooオークションに出品しようとしたところ 商品説明をする箇所にHTMLが使えなくなりました。 通常入力とHTMLタグがあるのですが、HTMLタグをクリックすると 入力する箇所が消えています(入力が出来ない状態です) 通常入力でHTMLを入れると実際の画面でもズラッとタグが出てきます。 再出品や編集ではありません。この商品ははじめての出品です。 過去の質問などでは出品する時通常入力かHTMLを選択とありましたが 選択する画面もでません。 私がした手順 1.アイテムを選択 2.警告がでる(違法なものの出品を禁止するなど) 3.↑続けるを押す 4.タイトルや商品説明のページになる ここで説明欄のHTMLタグをクイックすると入力できなくなってしまいます。 入力欄が消えているのです。通常入力ならできる状態なのです。 入力できないように見えるが実際はできるというお答えも頂いたのですが入力出来ませんでした。 過去質問からログアウトしてから再度ログイン、PC再起動、キャッシュクリア...IE8だったのですが、yahooオークションは6か7が いいとのことで7に戻したたりと色々試したのですがダメなんです。 yahooに問い合わせて5日たちますが未だに返事が来ていません。 HTML使えないと文章が長くなり見た目も見苦しく、商品自体も貧相に見えます。 どなたかご存知の方おられましたら助けてください。 宜しくお願い致します。

  • ヤフオクのHTMLタグについて! おねがいします

    表題の通りなんですが、出品確認画面のプレビュー画面でHTMLタグのままで 表示されてしまって、どうしたらいいのか分からず質問しました。 例) (半角文字で書いてます) <BR> 改行 <A HREF="?">?</A> リンク先の説明 <CENTER>?</CENTER> 中央に表示 <IMG SRC="?"> 写真のURL 上記の様に書いた場合通常表示されると思うのですが、書いた文字のまま 確認画面で(プレビュー)されてしまってます。 環境 OS : Win xp Sp3 ブラウザ : Firefox Ver2・3 ・ IE7 両方試しても一緒の状態です。 アドバイスお願いします。