2012-10-30 1 views
5

の前にハッシュタグを返します。I MVC3ビューで、次のコードを持っている:window.location.hash値

$(document).ready(function() { 
    if (window.location.hash) { 
     var manager= new Manager(); 

     manager.doSomeStuff(window.location.hash); 
    } 
}); 

興味深いのは、そこURLにはハッシュタグではありません、または場合にのみ存在することですハッシュタグの例:

http://localhost:1223/Index/AboutUs 

http://localhost:1223/Index/AboutUs# 

window.location.hashが空であり、機能が実行されません。 しかし、ハッシュタグ内のいくつかの値がある場合:

http://localhost:1223/Index/AboutUs#categoryId=5&manufacturerId=8 

window.location.hashの値が#categoryId=5&manufacturerId=8

ある#タグが値に含まれており、理由なしがある場合にされてなぜあなたは私に説明することができます値が#タグの後にある場合、window.location.hashは空です。

+0

はい – adeneo

答えて

9

何も説明はありません。それが動作する方法です。

もっとここで読む:http://www.w3schools.com/jsref/prop_loc_hash.asp

の定義と使用法

The hash property returns the anchor portion of a URL, including the hash sign (#). 
+0

はい、私は定義を見ましたが、何らかの形で、ハッシュ記号が値と共に返されているように思われます。それが私が質問した理由です。また、window.location.hash値を設定しているときは、ハッシュ記号を文字列に追加する必要はありません。 –

8

あなたは、単にハッシュ名変更して欲しい場合は、それを変更することができます。

//Your old hash name caught in a variable 
var nameHash = location.hash; 

//Your new hash name without "#" 
var newHashName = nameHash.replace("#",""); 
+0

これは、ハッシュに別の '# '文字が含まれていると望ましくない結果になることがあります。 – Bernard

1

You can repalce #が、この方法を競合が発生し、javascriptで動作しません。ここで

Here is window.location reference link.

異なる使用例です:

$(document).ready(function() { 
    var urlHash = window.location.hash; 
    var sampleURL = '#categoryId=5&manufacturerId=8'; 

    if (urlHash.length > 1) { 
     //do stuff 
    }else{ 
     //if value is empty, do stuff 
    } 

    if (urlHash === sampleURL) { 
     commonResponse(); 
    } 

    $('a').click(function() { 
     var target = $(this).attr('href'); 

     if (target === sampleURL) { 
      commonResponse(); 
     }  
    }); 

    function commonResponse() { 
     //alert('ok'); 
    } 
}); 
7
var hash = window.location.hash.substring(1); 

これは、ハッシュタグで文字列の最初の文字を省略しています。