2010-07-10 100 views
1

有没有什么方法可以随意访问Safari中的Javascript的History对象中的URL?我正在写一个需要的扩展,在特定格式的页面请求上捕获前一页的URL。从我所能找到的角度来看,History对象定义在浏览器中是非标准的。 Safari似乎只公开其length属性以及实际上在历史记录中移动的标准方法。在其他实现暴露current,previousnext属性的地方,我看不到任何能够告诉我Safari做同样的事情。窗口的历史记录对象中的访问URL

我也试过document.referrer,但在这种情况下似乎没有填充。

我只需要在给定的页面上显示先前访问的URL。有没有其他方法可以访问该URL?

谢谢。

+0

如果用户在URL中输入该怎么办?或来自书签? – 2010-07-10 23:39:09

+0

在这种情况下,它不能(或者至少不太可能)发生。我在地址栏中捕获Safari的RSS按钮。你必须在页面上点击那个按钮。 – 2010-07-11 00:19:49

回答

1

你不可能真的这样做,至少在任何白帽子的方式。通过设计。您可以前后移动用户,但无法看到网址。

不那么认真的剧本作家当然把这当作挑战。我相信他们最接近的是动态地写出一串已知的比较链接到页面,然后检查它们是否显示在“已访问”的颜色状态。也许如果你在一个封闭和可预测的环境中工作(一个intranet应用程序?),并且有一组已知的URL,这对你来说可能是一种有效的方法。再次,在这样的环境中,你可以在服务器端用会话管理来处理这个问题。

+0

正如我的问题中提到的那样,Mozilla(和其他人?)公开了一个'以前的'成员,他会完全符合我的要求。不幸的是,这对我在Safari/WebKit环境中没有好处,所以看起来答案是......你不能。我将避免疯狂的黑客攻击,并放弃我正在研究一段时间的功能。 – 2010-07-15 11:30:08

+0

Rob,你说的是'前一个',但只有在特殊情况下,用户正在运行一个加密签名的脚本并授予'UniversalBrowserRead'权限 - 当然只能在Mozilla中运行...... – 2010-08-06 02:17:33

相关问题