Javascript 访问窗口中的URL';历史对象

Javascript 访问窗口中的URL';历史对象,javascript,safari,safari-extension,Javascript,Safari,Safari Extension,有没有办法在Safari中随机访问Javascript的历史记录对象中的URL?我正在编写一个扩展,需要在特定格式的页面请求中捕获上一页的URL。据我所知,History对象定义在浏览器中是非标准的。Safari似乎只公开了它的length属性和在历史中实际移动的标准方法。如果其他实现公开了current、previous和next属性,我看不到任何东西告诉我Safari也这样做 我还尝试了document.referer,但在本例中似乎没有填充该文档 我只需要在给定页面上显示以前访问过的URL

有没有办法在Safari中随机访问Javascript的
历史记录
对象中的URL?我正在编写一个扩展,需要在特定格式的页面请求中捕获上一页的URL。据我所知,
History
对象定义在浏览器中是非标准的。Safari似乎只公开了它的
length
属性和在历史中实际移动的标准方法。如果其他实现公开了
current
previous
next
属性,我看不到任何东西告诉我Safari也这样做

我还尝试了
document.referer
,但在本例中似乎没有填充该文档

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


谢谢。

你不可能真的做到这一点,至少是以任何方式。是故意的。您可以前后移动用户,但看不到URL


不那么严谨的剧本作者当然把这当作一个挑战。我相信他们最接近的方法是动态地将一堆已知的比较链接写入页面,然后检查它们是否以“已访问”的颜色状态显示。如果您在一个封闭且可预测的环境中工作(内部网应用程序?),并且有一组已知的URL,那么这可能是一种有效的方法。同样,在这样的环境中,您可以通过会话管理在服务器端处理此问题。

您不能真正做到这一点,至少不能以任何方式。是故意的。您可以前后移动用户,但看不到URL


不那么严谨的剧本作者当然把这当作一个挑战。我相信他们最接近的方法是动态地将一堆已知的比较链接写入页面,然后检查它们是否以“已访问”的颜色状态显示。如果您在一个封闭且可预测的环境中工作(内部网应用程序?),并且有一组已知的URL,那么这可能是一种有效的方法。同样,在这样的环境中,您可以通过会话管理在服务器端处理此问题。

如果用户键入URL怎么办?或者来自书签?在这种情况下,它不可能(或者至少不太可能)发生。我正在地址栏中点击Safari的RSS按钮。您必须在页面上单击该按钮。如果用户键入URL怎么办?或者来自书签?在这种情况下,它不可能(或者至少不太可能)发生。我正在地址栏中点击Safari的RSS按钮。您必须在页面上单击该按钮。正如我在问题中提到的,Mozilla(和其他人?)公开了一个
以前的
成员,该成员将完全按照我的要求进行操作。不幸的是,在Safari/WebKit环境中,这对我没有好处,所以答案似乎是……你不能。我要避免疯狂的黑客攻击,只是暂时放弃我正在开发的功能。Rob,你关于
previous
的说法是对的,但只有在非常特殊的情况下,用户使用
UniversalBrowserRead
权限运行加密签名脚本——当然,只有在Mozilla中才是如此……正如我在问题中提到的,Mozilla(和其他人?)公开了一个
以前的
成员,这个成员会做我想要的事情。不幸的是,在Safari/WebKit环境中,这对我没有好处,所以答案似乎是……你不能。我要避免疯狂的黑客攻击,只是暂时放弃我正在开发的功能。Rob,你对
previous
的看法是正确的,但只有在非常特殊的情况下,用户使用
UniversalBrowserRead
权限运行加密签名脚本——当然只有在Mozilla中。。。