
いつもお世話になっております。
login.jsp
A.jsp
B.jsp
C.jsp
という画面があり、ログイン画面以外の画面上部に以下のようにリンクを張り付けております。
<a id="AH" href="A.jsp" onClick="Aheader()">A画面へ</a>
<a id="BH" href="B.jsp" onClick="Bheader()">B画面へ</a>
<a id="CH" href="C.jsp" onClick="Cheader()">C画面へ</a>
ログイン画面でログインに成功すると、A.jspへ遷移します。
(1)A画面へ遷移した後、『A画面へ』のリンクを無効化
『B画面へ』をクリックすると、
(2)B.jspへ遷移し、『A画面へ』のリンクを有効化・『B画面へ』のリンクを無効化
(C画面も(2)と同じ仕組み)
---------Script---------
window.onload = function()
{
var element = document.getElementById("AH");
element.removeAttribute("href");
}
function Aheader()
{
var element = document.getElementById("AH");
element.removeAttribute("href");
}
function Bheader()
{
var element = document.getElementById("BH");
element.removeAttribute("href");
}
function Cheader()
{
var element = document.getElementById("CH");
element.removeAttribute("href");
}
------------------------------------
これを実行すると、確かに無効化はされますが、有効化が出来ていない状態です。(hrefが削除されたままなので・・・)
ですので、setAttribute を使えば出来そうだと考えたのですが、うまく動きませんでした。
ぜひ皆様の知恵をお借りしたく質問させていただきました。
よろしくお願いいたします。
No.4ベストアンサー
- 回答日時:
ヘッダーを別ファイルで実装するなら、
sessionにどの画面を読み込んでいるかを保存し、
場合分けしてはどうですか?
A画面のソース
A画面へ
<a id="BH" href="B.jsp" onClick="Bheader()">B画面へ</a>
<a id="CH" href="C.jsp" onClick="Cheader()">C画面へ</a>
B画面のソース
<a id="AH" href="A.jsp" onClick="Aheader()">A画面へ</a>
B画面へ
<a id="CH" href="C.jsp" onClick="Cheader()">C画面へ</a>
のような感じです。
実際にはjavascriptでsessionは使えないから、onclick部分は
それ用に修正がいりますけど。
includeでsessionが使えたかどうか、うろ覚えですが、
無理な場合は、server.excute何かも使えたのではないかと・・
#2さんが言われてるように
javascriptよりかは簡単だと思いますが・・
chochobizo様
>リンクを省いた状態でHTML出力するか
は、そういう意味だったのですね。
確かにその方法が簡単に済みますよね;;
一応includeするようにと言われておりますので、sessionを使うという案でやってみます(*^^*)
大変お手数をお掛けいたしまして、申し訳ございませんでした。
そして、ありがとうございました。
No.3
- 回答日時:
#2です。
どうせA.jsp、B.jsp、C.jspの3つに分かれていて、高々そのくらいの処理ならばわざわざinculudeしなくても、前半の方法で直接2行ずつ記入したほうが簡単そうな気がしますが?
どうしてもincludeで処理したければ、後半の方法で可能では?
(jsp自体をよく知らないけど)
しつこいようですが、せっかくjspにしているのだから、その部分に関してはjavascriptは不要でしょう。(前半の方法だとjspの必要もないけれど…)
fujillin様
chochobizo様にもお伝えしたのですが、
一応includeするようにと言われておりますので、今回は直接2行ずつではなくsessionで判断することに致しました。
ありがとうございました(*^^*)
No.2
- 回答日時:
よく理解できてないけれど…
A.jsp → BとCのリンクを表示
B.jsp → AとCのリンクを表示
C.jsp → AとBのリンクを表示 するのだと解釈しました。
結果が固定で、ファイルが分かれているのなら、#1様が既に回答されているように、javascriptの必要もありません。
それぞれの出力するHTMLソースを修正するだけでよろしいかと。
ABC.jspみたいな一つのファイルで3個分を兼ねるのであれば、必要なリンクだけ出力することが必要になるかも知れませんが、その場合も、javascriptでやるより、サーバサイドで出力し分けるのがよろしいかと。
(何のためにjspにしているのかわからない)
この回答への補足
fujillin様
ご回答ありがとうございます。
私の説明不足で申し訳ございません。
<a id="AH" href="A.jsp" onClick="Aheader()">A画面へ</a>
<a id="BH" href="B.jsp" onClick="Bheader()">B画面へ</a>
<a id="CH" href="C.jsp" onClick="Cheader()">C画面へ</a>
これは各画面の共通ヘッダーとして利用するため、
この3つのリンクだけを記述したjsp(仮にheader.jspとする)を作成しており、header.jspをA,B,Cの各jsp上部でincludeしております。
ですので、この3つのリンクはA,B,Cの全部の画面の上部に表示されています。
『A画面へ』をクリックしA画面を開いたら、
現在A画面にいることを示すために、A.jspのリンクを無効化したいという狙いでございます。
他の画面も同様です。
この様な説明で伝わりますでしょうか?
説明が下手で申し訳ございません。
ご理解いただけたようでしたら、是非ご指導お願いいたします。
No.1
- 回答日時:
サーバサイドで、リンクを省いた状態でHTML出力するか
A.jsp,B.jsp,C.jspとそれぞれにファイルが分かれているので、
それぞれのHTMLソースの該当個所のリンクを省く。
この回答への補足
chochobizo様
ご回答ありがとうございます。
>リンクを省いた状態でHTML出力するか
removeAttribute("href")のことでしょうか?
>それぞれのHTMLソースの該当個所のリンクを省く。
これは、
A画面にいる時には、『A画面へ』を表示すらしないようにするということでしょうか?
お手数ですが、よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
webアプリを作ってます。エラー...
-
strutsで、任意の画面からの任...
-
JSPからJSPへ情報を渡せる?
-
ボタンが活性化の場合とは、ボ...
-
フォーム上で押されたボタンに...
-
JSPでsession変数が勝手に書き...
-
Formのデータが欠落することがある
-
三菱GOTの画面切り替えについて
-
ASP.NET 画面遷移前の状態を保...
-
ServletからServletへの値渡し
-
腕時計の時報をならないように...
-
EXCEL VBAで、EXCELの入力規則...
-
jspでjavascript関数へ引数を渡...
-
ページ遷移せずにjava部品を実...
-
サーブレットからJSPへの変数受...
-
strutsを使ってテキストエリア...
-
親ウィンドウの画面遷移
-
すき家のハンディ操作
-
GetWindowTextについて
-
VB6 開発環境のエディタに行...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jspからServletを呼び、元のjsp...
-
webアプリを作ってます。エラー...
-
JSPからJSPへ情報を渡せる?
-
jspでbeanを使いたいのです...
-
jsp:paramアクションタグで配列...
-
javascriptでformの送信後、値...
-
Java サーブレット間の値の受渡...
-
JSPが表示できない
-
WEB-INF直下のフォルダ
-
session,requestはjspで未定義...
-
Seaser2のフォルダ構成について
-
struts2 jspファイル直接参照禁...
-
JSPのエラー画面(error.jsp)に...
-
JSPの値により遷移先を変更する
-
Struts:フレーム内JSPからcssフ...
-
JSPの変数受け渡しについて教え...
-
Servlet-JSP間のhidden要素での...
-
jspのクラスのコンパイルエラー
-
1つのフォーム内容を1つのsubmi...
-
検索後のページ再表示初期化
おすすめ情報