条件のついて、別のページと私のページをリンクしたいと思います。HTMLで条件付きハイパーリンクを作成するには
、すなわち1.html、2.htmlと3.html、私は3 HTMLページがあるとします。私が欲しいのは、1.htmlがロードされている場合、ロードページ2.html; 1.htmlがロードされていない場合は、3.htmlをロードします。
助けてください。
条件のついて、別のページと私のページをリンクしたいと思います。HTMLで条件付きハイパーリンクを作成するには
、すなわち1.html、2.htmlと3.html、私は3 HTMLページがあるとします。私が欲しいのは、1.htmlがロードされている場合、ロードページ2.html; 1.htmlがロードされていない場合は、3.htmlをロードします。
助けてください。
私はページ1,2および3についてのあなたの説明に従うことができませんが、一般的な意味では、 "onclick"イベントを処理することによって、いくつかの条件によって異なるURLに行くことができますデフォルトのナビゲーション、代わりに、JavaScriptからそれを実行します。
<a href="defaulturlhere" onclick="doClick(); return false;">My link</a>
<script>
function doClick() {
if (someCondition || someOtherCondition)
window.location.href = "firstURLhere";
else
window.location.href = "alternativeURLhere";
}
</script>
JavaScriptが無効になっている場合はアンカーのhref
属性で指定されたURLが使用されます。それ以外の場合は、doClick()
関数を呼び出して、ナビゲートするURLを決定します。もちろん、この機能は必要に応じて簡単にも複雑にもできます。
onclick
は、(明らかに)href
属性のURLに移動するため、アンカーのクリックのデフォルト動作を取り消す必要があります。
私はあなたが達成したいとは思っていません。
他のページが以前に開かれている場合にのみ、ページにハイパーリンクを表示すると思います。
このような場合は、ページ1のwindow.loadにクッキーを作成することができ、そしてクッキーが設定されている場合は、そのクッキーが2ページ
のwindolow.onloadイベントに設定されているかどうかを確認、ダイナミックを作成しますページ2のハイパーリンクをクリックしてページ3にリダイレクトします。クッキーが設定されていない場合は、リンクを作成しないでください。
また、Cookieが設定されているかどうかに基づいて、動的に作成する代わりにハイパーリンクを表示/非表示にすることもできます。 jQueryを使用していない場合、これは簡単でクロスブラウザーな方法です。
をそれはの線に沿って何かする必要があります:あなたはページの一番下にスクリプトを追加する場合は、Javascriptをすべて<a>
タグを検索し、現在にそれらを比較します url
。一致した場合、そのスタイルは不可視に設定されます。
<script>
linkNodes = document.getElementsByTagName("a");
for(i = 0; i < linkNodes.length; i++){
if(linkNodes[i].getAttribute("href") == document.url){
linkNodes[i].style.visibility= "hidden";
}
}
</script>
1.htmlの場合は、2.htmlと3.htmlが表示されますが、1.html自体は表示されません。 2.htmlの場合は1.htmlと3.htmlだけしか表示されません。
私はコードをテストしませんでした...私のコンピュータにはいなかったので...任意の変更をコメントしてください... – edgarator
1.htmlを読み込むことができるかどうか、つまりドキュメントが存在するかどうかチェックしますか? 質問を言い換えてください。 – zvona