Javascript location.href未定义

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()

我现在很难在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()
    {
        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(/^.*?#/,'')