Api 更改地址栏中的锚点(location.hash)

Api 更改地址栏中的锚点(location.hash),api,iframe,facebook-iframe,Api,Iframe,Facebook Iframe,我有一个FB应用程序,它使用锚点(document.location.hash)在不同的元素上设置标记(例如当前选项卡、显示的组…)。 因此,每当用户更改这些元素时,我都会更改锚点(location.hash)并添加#tag=。。。 指向地址栏中的URL(当用户复制链接并将其发送给其他用户时),他将被重定向到特定视图(在同一页面上) 当应用程序是一个独立的站点时,它工作得很好。 但当我把它放在FB应用程序(apps.facebook.com/myapp)下时,它不会更改地址栏中的URL(但当我阅

我有一个FB应用程序,它使用锚点(document.location.hash)在不同的元素上设置标记(例如当前选项卡、显示的组…)。 因此,每当用户更改这些元素时,我都会更改锚点(location.hash)并添加#tag=。。。 指向地址栏中的URL(当用户复制链接并将其发送给其他用户时),他将被重定向到特定视图(在同一页面上)

当应用程序是一个独立的站点时,它工作得很好。 但当我把它放在FB应用程序(apps.facebook.com/myapp)下时,它不会更改地址栏中的URL(但当我阅读document.location.have时,我看到了更改)。我想可能是因为我的应用程序在IFRAME中。
如果无法修复,可能有一个Facebook API可以更改URL中的哈希部分

如果父帧的
位置
对象来自不同的域,则无法更改该对象的部分。。。您只能通过将整个位置设置为新值来更改它:

window.top.location = 'http://example.com';
实际上,
document.location
总是指当前文档,而window.location指顶层文档,表示用户在浏览器地址栏中看到的URL

因此,一般来说,您更改了当前文档的哈希值,如果它作为独立站点打开,用户会在地址栏中看到,但一旦在框架(应用程序画布)中运行,用户就不会看到该页面的URL,而是看到位于其他域和跨域策略主题上的父框架