在mx中设置`top.location === location`:HTML的iframe(并读取它的跨域值)

时间:2011-03-23 18:03:03

标签: javascript flash flex dom air

我99.99%肯定无法做到这一点......

假设我的Flex w / Air 2.6桌面应用程序中有一个<mx:HTML />元素,其src设置为example.com。此HTML元素包含srcfacebook.com的单个iframe。

现在,facebook不喜欢被诬陷。基本上,它会检查它是否document.location == top.location

所以,我需要做的是在iframe中设置top = document;(或window,无论哪个)。哦,当用户导航到其他网页/域时,top需要保持与iframe的document相等。

作为奖励,我希望能够从Air应用程序中读取当前文档的位置。

如果能做到这一点,任何人都有想法吗?

2 个答案:

答案 0 :(得分:2)

执行摘要:不可能。

你想在这里做什么会有安全隐患,这就是为什么不允许这样做的原因。正如您在对J_A_X的评论中所建议的那样,这是因为跨域问题以及那里涉及的安全问题。

如果您正在构建浏览器,我建议您构建浏览器在实际AIR应用程序本身中的显示方式,而不是嵌套的iframe。

AFAIK,完全在HTML / CSS / JS中成功构建浏览器的唯一方法是使用Web代理或屏幕抓取器,这将开启一个全新的蠕虫病毒。

答案 1 :(得分:0)

你想用iframe完成什么?你的方法对我来说似乎非常苛刻;无论哪种方式,这是一个javascript / html问题,而不是Air的问题。

如果你想获取iframe的当前位置,就像在html中调用当前显示在HTML组件中的Javascript函数一样简单:

htmlComponent.htmlLoader.window.someJSFunction();

认为这应该能够给你一个字符串,但我不是100%。