いつもお世話になっております。
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で質問しましょう!
似たような質問が見つかりました
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- HTML・CSS htmlで画面遷移させたい 1 2022/10/28 18:19
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jspからServletを呼び、元のjsp...
-
struts2 jspファイル直接参照禁...
-
webアプリを作ってます。エラー...
-
jspでformのvalueを取得。
-
javascriptでformの送信後、値...
-
リクエストに応じたselectedの...
-
フォーム上で押されたボタンに...
-
腕時計の時報をならないように...
-
j-axis 腕時計のアラーム止めたい
-
ActiveWorkbook.Pathの一つ下の...
-
Java-jspの画面入力値保持について
-
C# ログイン画面からメイン画面...
-
テキストボックスで入力したデ...
-
漏電遮断器の黄色ボタンと白色...
-
VBAでTIFF画像を読み込むには?
-
遷移元を判定したい!
-
セッション情報の保持について
-
困っています
-
三菱GOTの画面切り替えについて
-
ボタンが活性化の場合とは、ボ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jspからServletを呼び、元のjsp...
-
webアプリを作ってます。エラー...
-
JSPからJSPへ情報を渡せる?
-
jspでbeanを使いたいのです...
-
jsp:paramアクションタグで配列...
-
WEB-INF直下のフォルダ
-
1つのフォーム内容を1つのsubmi...
-
javascriptでformの送信後、値...
-
JSPの変数受け渡しについて教え...
-
Tomcatで開発したStrutsアプリ...
-
JSPでimportを行う時の、変数の...
-
JSP>errorPageで指定したページ...
-
servletからjspへの遷移時に文...
-
Servlet-JSP間のhidden要素での...
-
jspのクラスのコンパイルエラー
-
リンクの無効化/有効化 の切り...
-
検索後のページ再表示初期化
-
javaでカレンダー作成
-
strutsで、任意の画面からの任...
-
TOMCATで\\webapps\\ROOTフォル...
おすすめ情報