我在网页中使用jQuery.history插件,我遇到了一个小问题。我的网页有以下布局:
因此,当我在www.myDomain.com
访问我的网站时,它实际上会加载index.php
,这非常符合逻辑。在index.php
内,我说:include('home.php');
。所以谷歌可以检查我的第一页的内容。 $.history
将www.myDomain.com
链接存储在其插件中。哪个还好。
现在,我浏览我的菜单并点击 Home 。哪个会指引我到我的主页。但当然,我已经在那里了。问题是我的 Home 按钮的链接是#home.php
,因为我使用$.history
执行了ajax请求。所以我的网页逐渐消失,相同的内容即将出现。
当我在 otherPage 并按ctrl+R
时,我首先获取我的主页,然后卸载网页, otherPage 进入。很烦人,因为我想直接 otherPage 。
所以我的问题是:我怎样才能确保在没有哈希的情况下直接加载第一页(没有哈希)?如何确保未加载homePage我将转到另一个哈希?
它出错是合乎逻辑的,但我没有看到解决方法,因为PHP无法获取链接的哈希值。这仅适用于用户代理。我正在考虑设置一个额外的变量或什么东西去我的页面,但仍然,这将使href不再相同,$.history
将无法识别相同的链接。
更新
这个演示实际上显示了我在说什么:
http://balupton.com/sandbox/jquery-ajaxy/demo/
当您在页面上并向下滚动到TABS部分时。 Using jQuery Ajaxy
作为标题;它显示一个空白部分。然后单击选项卡将填充它。刷新页面时,它将再次从空白页面开始,然后使用您想要的正确内容填充它。我的事情是:我不想要一个空白的起始页面。
提前致谢!
答案 0 :(得分:0)
我建议使用#home.php而不是#home,这样它就不会一个一个地加载两个页面而只会加载一个页面。
参考:http://plugins.jquery.com/project/jquery-history-web-2-0-hashchange-history-remote
答案 1 :(得分:0)
好的,所以我最终创建了一个解决方法。
在我的主页中,我执行标准include()
。并且不要将其设置为display: none
。但我稍后会在javascript中执行以下操作:document.write('<style>#content{display:none;}</style>');
所以现在,谷歌将找到正常的页面。当有人加载页面时。第一个包含的页面被忽略了。因为我们初始化了$.history object
,所以在第一次ajax调用之后页面会执行$('#content').show();
。
PS。我想提一下,我应该从jquery.address plugin开始,而不是这个。也许有一天我会重构它。