Javascript / jQuery哈希URL不会执行

时间:2015-05-05 22:17:23

标签: javascript jquery html5

除非我手动点击回车键或刷新页面,否则我的hash URL不会执行javascript/jQuery

$(function($){
  var key=$(location).attr('hash');

  if (key){
    $('#div').find('div.div2').load('sig.php?k='+key)
  }
});

当我手动输入URL或刷新页面时,无论何时我使用<a href="url#SecReTkEy">Javascript/jQuery函数,例如:

,这都可以正常工作

$(location).attr('href','url#SecReTkEy');

$('a').prop('href','url#SecReTkEy');

window.location.replace('url#SecReTkEy');

window.location.href('url#SecReTkEy');

任何人都可以告诉我为什么以及如何解决这个问题? `

3 个答案:

答案 0 :(得分:0)

你应该使用

location.href = #whatever

答案 1 :(得分:0)

您不需要JQuery来检索哈希。使用window.location.hash的完全限定引用(我猜location不起作用,因为您已经有一个名为location的var。

另外,请不要忘记使用encodeURIComponent对密钥进行URL编码。此外,$不需要$(function(){ var key = window.location.hash; if (key){ $('#div').find('div.div2').load('sig.php?k=' + encodeURIComponent(key)) } });

$scope

答案 2 :(得分:0)

I have a hash URL that doesn't execute the javascript/jQuery unless I manually hit the enter key or refresh the page.

这是因为它只启动了一次而不是eventBinder hashchange