こんにちは私はこのウェブサイトを構築しています:http://www.freiheitmedia.com/en/。 Themify Ultraテーマで構築されています。"hashchange"はWordpressで起動しません
私の目標は、リンクをスクロールしたりクリックしたりするときにURLの#something部分を取り除くことです。
テーマベースの解決策がなく、サポートスタッフが私を助けないので、JavaScript/jQueryで行う必要があります。
私はすでにテストされ、は、次のコードは、私が好きなURLを置き換えることを知っている:
history.replaceState("",document.title,window.location.pathname + window.location.search);
さて、問題は、私は、一見「なhashchange」イベントを発生させることはできませんということです。両方のケースで、私はフッターに次のコードを入れていますし、警告文が達していない。
<script>
window.addEventListener("hashchange", function(e){
alert("hiii");
});
</script>
または
<script>
window.addEventListener("hashchange", function(e){
alert("hiii");
}, false);
</script>
私は疑うなhashchangeイベントは、テーマの設定によって阻止されるかもしれないことが、それはちょうど推測です。
「ハッシュチェンジ」が発砲していない理由はありますか?あなたの明確化コメントから
あなたが求めていることは少し不明です。最初のコードブロックでコードを実行するときに 'hashchange'イベントが発生することを期待していますか? (あなたは、 'hashchangeは' history.replaceState'によって起動されません。)あるいは、最初のブロックのコードをトリガしてハッシュ変更に応答しようとしていますか? –
FWIW、イベント(2番目と3番目のブロック)をフックするコードが正しいです(標準に準拠したブラウザの場合 - IE8以前ではなく、互換モードの場合はIE9 +ではありません)。 –
@tjcrowderサイトにアクセスしてスクロールダウンすると、現在のセクションに応じてURLが変わることがわかります。具体的には#partが変更されます。私の目標は、この動作を防ぎ、いつもきれいなURL(#hashを付けない)を持たせることでした。だから私は "hashchange"イベントを聞いてこの動作にアクセスしようとしました。しかし何らかの理由で、 "hashchange"イベントがurlを変更したときにトリガされません。それは#partです。これは理解できますか? –