プロが教える店舗&オフィスのセキュリティ対策術

今、自分で作ってるプログラムの話です。。

alert に、HTMLのコードが入ったもの<BR>とか、を入れた場合、どうもそのまま<BR> と表示されてしまいます。
改行は、してもしなくてもいいんですが、巧い方法って有りますでしょうか?
やや困りです。
宜しくお願いします。

ちょっと具体的に書きますと。。

まず、画面Aで 画面Bのタイトルを入力してもらいます。
その時、場合によっては<BR>を入れてもらい、改行、もしくは<FONT>等で色の指定等してもらいます。
画面Bには選択欄が有り、そこの選択欄が正しく選択されてない場合、
(画面Bのタイトル)が、選択されてません
というalertを出す仕組みです。

つまり画面Aにて、「画面B<BR>のタイトル」と入力した場合、
alert でも、
画面B<BR>のタイトルが、選択されてません
と表示されてしまいます。

という感じですが、HTMLタグがalertで出ない方法です。
こうしたらいいんじゃない?っていうアイディアでも構いません。
宜しくお願いします。

A 回答 (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に渡して下さい。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/11/08 13:58

言語は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"の部分を""にすればいいと思います。
    • good
    • 0
この回答へのお礼

JavaScriptで。って事を書き忘れてましたね。
登録したカテゴリーがそうだったので、うっかりしてました。
っていうか、ASPです。

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

お礼日時:2001/11/08 13:53

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

    • good
    • 0

画面B\rのタイトル


としてみてください。
    • good
    • 0

何の言語か解らないですが...。



要は、「画面B<BR>のタイトル」を、「画面Bのタイトル」と表示したいのですよね?

単純に、”<”~”>”を削除したら駄目なのですか?
タグは、基本的に”<”と”>”で囲まれてる筈ですので...。
多重括弧だけ検出すれば、問題無いと思うのですが?

質問の意味を取り違えてたら、すいません。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/11/08 13:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!