実現したいこと
直前に表示したページの情報を元に、リンク先を条件分岐させたいです。
前提
ルートディレクトリに英語サイト、「ja」ディレクトリに日本語サイトを作成して、多言語サイトを作成しました。
ルートディレクトリ内に「grandMenu」というフォルダを作成し、
そのフォルダにindex.htmlを作成し、index.html内にグローバルナビを設置し、各ページへのリンクを設置しています。
しかし、grandMenuというディレクトリは「ja」ディレクトリ内には作成していないので、日本語ページからgrandMenuフォルダ内のグローバルナビから他のページにアクセスした時、リンク先が英語ページになるので、日本語ページへリンクさせてほしいと依頼されました。
ただ、同一ページにリンク先を2つ指定し、前ページのurlをを元にリンク先を条件分岐させる方法がどう実現すればいいのかが分からない状況です。
発生している問題・エラーメッセージ
javascriptのリファラを使用して、ページ情報を取得してリンク先を生成しましたが、条件分岐されず、aタグ内に記述したリンクにそのまま移動してしまいます。
該当のソースコード
html
1<ul> 2 <li><a id="AAALink" href="../AAA.html">タイトル:AAA</a></li> 3 <li><a id="BBBLink" href="../BBB.html">タイトル:BBB</a></li> 4 <li><a id="CCCLink" href="../CCC.html#column">タイトル:column</a></li> 5 <li><a id="DDDLink" href="../DDD.html">タイトル:DDD</a></li> 6 <li><a href="EEE.html">現在のページ</a></li> 7</ul>
javascript
1var currentURL = window.location.href; 2var referrer = document.referrer; 3 4if (referrer.indexOf('/ja') !== -1) { 5 document.getElementById("AAALink").setAttribute("href", "../ja/AAA.html"); 6 document.getElementById("BBBLink").setAttribute("href", "../ja/BBB.html"); 7 document.getElementById("CCCLink").setAttribute("href", "../ja/CCC.html#column"); 8 document.getElementById("DDDLink").setAttribute("href", "../ja/DDD.html"); 9 } else { 10 document.getElementById("AAALink").setAttribute("href", "../AAA.html"); 11 document.getElementById("BBBLink").setAttribute("href", "../BBB.html"); 12 document.getElementById("CCCLink").setAttribute("href", "../CCC.html#column"); 13 document.getElementById("DDDLink").setAttribute("href", "../DDD.html"); 14 }
試したこと
直前にディレクトリ「/ja」内のページにアクセスし、
URLに直接上記javascriptを記述したページを表示して、リンクをクリックしても/jaに移動しなかったです。

回答1件
あなたの回答
tips
プレビュー