こんにちは私は#セクションで簡単なシングルページのウェブサイトを持っています。 #セクションを隠して表示するために#を使用しています。#urlセクションhideとshow
たとえば、 someurl/index.html/#sectionOne "sectionOne" idを持つdivがあるので、関連するセクションを表示できます。
私の質問は、予防または#ように、URLに「/」パス文字を交換する方法があります。
someurl/index.htmlに/ sectionOne - > someurl/index.htmlに/ #sectionOne
それは当然の404を与えるので。 私はbeforeunload、load on window、load on bodyを試しましたが、これらは私の問題を解決しませんでした。
これは私が正しく理解していれば、target
疑似クラスは、ここで使用することができ、簡単な例
$(document).ready(function() {
window.onload = function(event) {
var hash = "about";
$("section").hide();
$("#" + hash).show();
};
$(".nav").click(function() {
console.log("CLICK");
var hash = $(this).attr('href').substring(1);
console.log(hash);
$("section").hide();
$("#" + hash).show();
});
});
section {display: none;}
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<ul>
<li><a class="nav" href="#about">ABOUT</a></li>
<li><a class="nav" href="#services">SERVICES</a></li>
<li><a class="nav" href="#contact">CONTACT</a></li>
</ul>
<section id="about">
<h1>ABOUT</h1>
<p>About section</p>
</section>
<section id="services">
<h1>SERVICES</h1>
<p>Services section</p>
</section>
<section id="contact">
<h1>CONTACT</h1>
<p>Contact section</p>
</section>
ありがとうございますが、私はそれを正確には意味しませんでした。私が "/"パス文字を入力しないようにしたい、または "#"ハッシュの代わりに "/"パス文字があるなら、#で置き換えてください。 someurl/index.html/about - > someurl/index.html#about –
あなたの意見がありました。ユーザが '/'を使って遠ざかるのを防ぐことに関しては、クライアント側だけで簡単に達成する方法はないと私は信じています。いくつかの提案で答えを更新しました。 –