0

我目前在尝试通过 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 );
          }
          });
}

忽略错误脚本,它只是出于我自己的目的!

4

1 回答 1

1

我假设您正在尝试管理页面的“状态”。

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

推动一个状态:

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

弹出状态

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];
}

所以在你的情况下,我会:

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

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

你的页面格式是#/强制的吗? 如果没有,请使用我引用的那种代码,这将使您能够管理适当的历史记录、回退等。

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

如果这不能完全回答您的问题,那么请提供更多信息以及这没有回答什么。祝你好运

- - 编辑

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];
}
于 2014-06-12T01:33:32.247 回答