根据位置路径名加载jQuery页面

时间:2014-06-12 01:19:15

标签: javascript jquery ajax pathname

我目前无法通过jQuery根据标头加载页面! 最初,当我通过.click加载页面时,我将标题更改为#/Pathname。现在我的问题出现了,而不是个人不得不经常访问主页然后点击一个按钮,导致pathname 我希望他们能够直接进入www.example.com/main.php#/Pathname并让jQuery能够加载页面......这可能吗? 我试过这段代码,但没有运气:

if (document.location.pathname == "main.php#/Home") {
            $('#content').load('home.php', function( response, status, xhr ) {
          if ( status == "error" ) {
            var msg = "Sorry but there was an error: ";
            $( "#error" ).html( msg + xhr.status + " " + xhr.statusText );
          }
          });
}

为了我自己的目的,忽略错误脚本!

1 个答案:

答案 0 :(得分:1)

我认为你正在努力管理"州"页面。

我强烈建议您查看 window.history.pushState ,以帮助您正确重写网页的URI,同时管理正确的历史记录会话。

推动一个州:

window.history.pushState("","",URI );

到popState

window.addEventListener(' popstate',function(event){

your code here to manage event history

});

此外,您也无法分配您的URI。 我使用该函数进行uri解析和检查,因为我的页面有参数,例如?id = ...& name =

function getUrlParameter( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return null;
  else
    return results[1];
}

所以在你的情况下,我' d:

window.history.pushState("","",URI + "?page=home);

并测试我是否有家的位置:=> getUrlParameter("home")

您是否使用#/强制性页面格式化? 如果没有,请使用我引用的代码类型,以便您管理正确的历史记录,goback等。

如果是,我们会考虑另一种解决方案。

如果这不完全回答您的问题,那么请提供更多信息,这是不回复的。 好运

---编辑

function getUrlParameter( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\#/]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return null;
  else
    return results[1];
}