【发布时间】:2011-06-19 06:14:31
【问题描述】:
我很好奇如何让 JavaScript 区分两个几乎相同的页面(据我所知)具有相同的 div。像这样的页面示例是Google Home Page 与Google Search Results。无论如何我可以正确识别哪个是哪个?
【问题讨论】:
标签: javascript html-parsing css-parsing
我很好奇如何让 JavaScript 区分两个几乎相同的页面(据我所知)具有相同的 div。像这样的页面示例是Google Home Page 与Google Search Results。无论如何我可以正确识别哪个是哪个?
【问题讨论】:
标签: javascript html-parsing css-parsing
在该特定示例中, Chrome 不支持 window.title 将区分它们。window.title,但 document.title 支持。它适用于 Linux 和 Windows 上的 Chrome、Firefox 和 Opera; Windows 上的 Safari; Windows 上的 IE6、IE7 和 IE8;可能还有其他人。
更一般地说,window.location 会为您提供页面的 URL,这有助于告诉您当前所在的页面; more on MDC。我见过的所有主流浏览器都支持它,包括上面的列表。
【讨论】:
window.location 并非在每个浏览器中都可靠,而且 Google 有一种更改 URL 的方法,因此很难区分它们。但是,window.title 对于 Google 示例来说似乎是一个很好的解决方案。
window.title 将无法可靠地工作。
window.location 并非在所有浏览器中都可靠" 嗯?我从未听说过window.location 不可靠。它适用于我见过的所有浏览器。例如:jsbin.com/azogi4 我刚刚在 Windows 和 Linux 的 Chrome、Firefox 和 Opera 中检查过; Windows下的Safari;以及Windows下的IE6、IE7、IE8。我很想了解更多关于window.location 的信息,你有参考资料吗?
window.title。
从 HTML5 开始,您可以编辑浏览器历史记录。例如,您可以使用window.history.pushState() 更改当前 URL:
// pushState(state object, title, URL)
window.history.pushState({foo: "bar"}, "page 2", "bar.html");
这使用户保持在完全相同的页面上,但会更改 URL。这也发生在当前版本的 Google 主页上,所以页面还是一样的。
您可以使用window.location 检索网址。
【讨论】:
pushState 和 onpopstage。这就是谷歌的做法。嗯,也许这应该是评论,而不是答案