Javascript location.href未定义
我现在很难在Firefox(V33.1)中以任何可能的形式读取当前浏览器的位置。 location.href、window.location.href和document.location.href如果被jQuery的“ready”功能读取,则为“未定义”。与.hash等相同。但是,在控制台中,它们返回的内容与它们应该返回的内容完全相同Javascript location.href未定义,javascript,jquery,firefox,href,Javascript,Jquery,Firefox,Href,我现在很难在Firefox(V33.1)中以任何可能的形式读取当前浏览器的位置。 location.href、window.location.href和document.location.href如果被jQuery的“ready”功能读取,则为“未定义”。与.hash等相同。但是,在控制台中,它们返回的内容与它们应该返回的内容完全相同 $(function(){$("a").unbind("click").click($S.r);$S.r();}); $S={ r: function()
$(function(){$("a").unbind("click").click($S.r);$S.r();});
$S={
r: function()
{
try{$I=((typeof this.href)?this.href:location.href).replace(/^.*?#/,'');}catch($E){console.error($E);setTimeout(function(){$S.r();},250);return false;}
$S.c($I);
},
c: function($I)
{
$("content").css({"opacity":"0"});
setTimeout(function()
{
$("content spacer").html($S.h($I));
$("content").css({"opacity":"1"});
},1000);
},
h: function($I)
{
switch ($I)
{
case "impressum": return "Impressum";
case "email": return "E-Mail";
case "mitglieder": return "Familien-Mitglieder";
default: return "Startseite";
}
}
};
网址:
我想要实现的是:/#test将触发脚本加载测试内容
这在单击链接时起作用。在pageload上,它不会。
控制台中填写了相应的VAR。它们不在jQuery中。
使用setTimeout没有任何帮助
如何解决此问题?此处错误:
((typeof this.href)?this.href:location.href).replace(/^.*?#/,'')
尝试:
未定义的不是location.href
,而是this.href
,因为您的
类型this.href
是字符串'undefined'
,所以在比较时,这是真的。一定是在我的任一撤消步骤中意外删除的,谢谢。添加回来,但是location.href仍然是“未定义”控制台清楚地声明TypeError:location.href是未定义的
但是,我在您的站点上没有看到此错误。。并且location.href
的定义也正确。请尝试清除缓存。我完全看不到逻辑上的解释,为什么编辑此location.href会像控制台所说的那样停止未定义,但它确实起了作用。Firefox有时让我发疯。谢谢。成功了
。现在不工作了吗?或者您对您的控制台错误有何看法?:)
((typeof this.href != 'undefined')?this.href:location.href).replace(/^.*?#/,'')