0

基本的に、URL/window.locationに絶対に変数が含まれている場合 (もちろん過去の domain.com/)、javascript で何かを実行したいと思います。

現在、正確な文言「#hash」が含まれている場合にのみ実行される次の jQuery コードがありますwindow.locationが、前に述べたように、すべての変数の機能を拡張したいと考えています。

編集:申し訳ありませんが、明確にするために、変数とは、次の例のいずれかを意味します。

  • domain.com/ #ハッシュ
  • domain.com/ #hash2
  • domain.com/サブフォルダー
  • domain.com/textwithoutahash _

また、誰かが基本的な Javascript でこれを行う方法を知っていて、jQuery ライブラリを必要としない場合、それは追加のボーナスになります!

$(function() {
    if ( window.location.href.indexOf('#hash') > -1 ) {
        myfunctionhere;
    }
});
4

3 に答える 3

3

あなたの明確化については、最後に更新を参照してください

スクリプトをページの最後、最後の の直前に置き、次のようにします</body>

「変数」がドキュメントフラグメント識別子 (「ハッシュ」) を意味する場合、次のようになります。

<script>
if (location.hash) {
    callYourFunction();
}
</script>

「変数」がクエリ文字列を意味する場合、

<script>
if (location.search) {
    callYourFunction();
}
</script>

「変数」がリソース名を意味する場合、たとえば not http://domain.combuthttp://domain.com/pageの場合:

<script>
if (location.pathname && location.pathname !== "/") {
    callYourFunction();
}
</script>

MDNの location オブジェクトの詳細。


あなたの明確化について:

編集:申し訳ありませんが、明確にするために、変数とは、次の例のいずれかを意味します。

これらの例は、いずれhashpathnameまたは両方を持つことに帰着するため、次のようになります。

<script>
if ((location.pathname && location.pathname !== "/") || location.hash) {
    callYourFunction();
}
</script>

...そしてもちろん、 も処理したい場合はhttp://domain.com?foo=bar、次のように追加しsearchます。

<script>
if ((location.pathname && location.pathname !== "/") ||
    location.search ||
    location.hash) {

    callYourFunction();
}
</script>
于 2013-01-25T07:31:44.800 に答える
2

hash、a、pathnameまたはaがあるかどうかを確認できsearchます。

または、単純化するために、これを単純に使用できます。

if (window.location.href.split('/').filter(Boolean).length > 2) {
    callYourFunction();
}

window.location.hrefは単に URL 全体です。ドメインの後に何かがある場合は、それが表示されます。

この関数は、次の場合にトリガーされます。

  • domain.com/some/path
  • domain.com/#ハッシュ
  • domain.com/?some=変数
于 2013-01-25T07:36:58.377 に答える
0

searchのプロパティがwindow.location何かに設定されているかどうかを確認できます。また、hashプロパティを確認できます。

if (window.location.search || window.location.hash) {
  yourfunctionhere();
}

jQuery なしで呼び出すには、「onload」スクリプトに含めるだけです。

<script type='text/javascript'>
  document.onload = function () {
    if (window.location.search || window.location.hash) {
      yourfunctionhere();
    }
  }
</script>
于 2013-01-25T07:32:39.680 に答える