プロが教えるわが家の防犯対策術!

お世話になります。
JSPファイル内のJavaScriptで調べた値を、
同じJSPファイル内のHTMLへ値を渡して、
その値をHTML内のIF文で判断して、
HTMLの表示画面内容を、
大まかには、以下のサンプルソースのような流れで
変更したいです。

<script language="JavaScript" type="text/javascript">
<!--
function getInfoAgentUser(){
var agent_user = navigator.userAgent.toLowerCase();
var WinOs = agent_user.indexOf("win") != -1; // 文字列に、"win"が含まれているケース
var Msie = agent_user.indexOf("msie") != -1; // 文字列に、"msie"が含まれているケース
var errFlg = "";

if(WinOs){
if(Msie){
errFlg = "0";

}else{
errFlg = "1";
}
}else{
errFlg = "2";
}
}
//-->
</script>
</head>

<body onLoad="getInfoAgentUser()">
<c:if test="${errFlg == 1}">
<h1>ブラウザエラー</h1>
<div class="main">
<p><c:out value="Internet Explorerを利用してください" /></p>
</div>
</c:if>
<c:if test="${errFlg == 2}">
<h1>OSエラー</h1>
<div class="main">
<p><c:out value="Windows XP以上を利用してください" /></p>
</div>
</c:if>

上記のサンプルソース内の、
JavaScript内のIF文で判断した「errFlg」変数の値を、
<body ~以下で、
<c:if test="${errFlg == 1}">
みたいに判断し分岐して、
HTMLの表示画面内容を
変更したいです。

どのようにすれば、上記の「errFlg」変数の値を
JavaScript→HTMLへ値渡し出来るのでしょうか?

以上になります。
ご存じの方がいらっしゃいましたら教えてください。
宜しくお願いします。

A 回答 (1件)

ご質問の内容が、さっぱり理解できていないのですが、




ひょっとして、サーバーサイドでの処理(JSP)およびサーバーからの出力、クライアント側の処理(ブラウザ:HTML及びjavascript)を順序立てて考えた時に、時空を遡ろうとしていませんか?

もしもそうであるなら、タイムマシンを作るよりも、最初に環境変数を調べる方がはるかに簡単そう。
(JSPはまったく知らないので、よくわかりませんが)
http://iwamode.net/etc/cgi_env_param_sample_jsp. …
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd …


>その値をHTML内のIF文で判断して、
の意味が、まったくわかりませんが、

>HTMLの表示画面内容を、変更したいです。
ということだけなら、javascriptのみでも可能なのではないでしょうか。
ただし、クライアント側でスクリプトオフにしていると、効果はありませんけれど。
    • good
    • 0
この回答へのお礼

「7178722」様

お世話になっております。
ご指摘の通り、時空を遡ろうとしていたことに、
ご回答を見て、気付かせていただきました。

JavaScriptはクライアント(ブラウザが実行されているPC内)、
JSPはサーバ上で、
それぞれ実行されるんでしたね・・・。

ご回答をいただいた後、いろいろ試した結果、
JavaScript内のIF文内で、alert(メッセージボックス)を利用して、
各エラーメッセージを表示させる仕様とすることで、
問題解決と致しました。

お忙しい中、丁寧なご回答をいただきまして、
本当にありがとうございました。

お礼日時:2011/12/09 12:00

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