2011-01-14 76 views
1

我在我的网页中使用了jQuery.history插件,并且遇到了一些问题。我有我的网页布局如下:我需要一个用于刷新的jQuery.history解决方法

  • www.myDomain.com
  • www.myDomain.com/#home.php
  • www.myDomain.com/#otherPage.php
  • 。 ..更多的

所以当去我的网站www.myDomain.com,它实际上加载index.php,这是非常合乎逻辑的。在index.php里面,我说:include('home.php');。所以谷歌可以检查我的第一页的内容。 $.history在其插件中存储www.myDomain.com链接。这仍然很好。

  1. 现在,我通过我的菜单,点击首页。这将指引我到我的主页。但当然,我已经在那里。问题是我的主页按钮的链接是#home.php,因为我做了一个与$.history ajax请求。所以,我的网页淡出和相同的内容在未来。

  2. 当我在otherPage并按ctrl+R,我第一次拿到我的主页,然后该网页就会被卸载,otherPage进来。这是烦人,因为我想直接拿其他页

所以我的问题是:我怎样才能确保,第一页(所以没有哈希)是直接加载时,没有哈希?我怎样才能确保主页没有加载我要去另一个哈希?

它似乎很合乎逻辑,它出错了,但我没有看到解决方法,因为PHP无法获得链接的散列。这仅适用于用户代理。我正在考虑设置一个额外的变量或什么时候去我的网页,但仍然,这将使得href不再是相同的,并且$.history不会识别相同的链接。

UPDATE

这实际上演示说明了什么我谈论:

http://balupton.com/sandbox/jquery-ajaxy/demo/

当你在页面上,向下滚动到TABS部分。 Using jQuery Ajaxy作为标题;它显示一个空白部分。当然,点击这些标签会填充它。当刷新页面时,它将再次从空白页面开始,然后用你想要的正确内容填充它。我的事情是:我不想要一个空白的起始页面。

在此先感谢!

回答

0

好了,所以我创建了一个解决方法......最后。

在我的主页,我做了一个标准include()。并且不要将其设置为display: none。但我这样做在后来的javascript:document.write('<style>#content{display:none;}</style>');

所以现在,谷歌会找到正常页面。当有人加载页面。第一个包含的页面被忽略。而且由于我们初始化了$.history object,页面在第一次ajax调用后将执行$('#content').show();

PS。我想提一下,我应该从jquery.address plugin开始,而不是这个。也许我有一天会重构它。

0

我会建议,而不是#home.php,试图使它只#home,这样它将不会加载两个页面一个接一个,只会加载一个页面。

编号:http://plugins.jquery.com/project/jquery-history-web-2-0-hashchange-history-remote

+0

不,现在也不会,因为#之后的所有内容都不会被视为加载。这不是我想要解决的问题。该页面是双重加载的,因为index.php包含(home.php),之后,它对$ .history说:让我们加载home.php。但我无法删除包含,因为我的页面将是空的,否则 – Marnix 2011-01-14 14:55:30

相关问题