【发布时间】:2017-12-21 08:30:08
【问题描述】:
我们有一个游戏,我们的一个客户正试图将游戏加载到他们的 iframe 中。出于某种原因,他们需要锁定地址栏,并在 iFrame 中添加了 scrolling="no" 样式。
这会破坏我们的游戏,因为我们有一个他们永远无法摆脱的向上滚动覆盖。
我正在寻找一种方法来获取 iframe 并检查 iframe id,而无需对其域的跨域策略。这可能吗。我只需要 iframeID 或者检查样式并查看其是否可滚动。
由于浏览器跨域安全性,我觉得这是不可能的,但想通了,请在这里询问,看看是否有人有任何建议。
我正在尝试这个。
var ganFrame = document.getElementById( ganId );
它应该返回null
打电话
var ganFrame = window.top.getElementById( ganId );
但我得到了预期的跨域错误。有没有办法在没有错误的情况下检测到这个 iframe。我不需要访问它只是为了查看它是否存在。
如果 window.top != window.self 我可以检测到,但我们有其他客户需要我们在带有覆盖的 iframe 中。
注意
客户端不会改变其 iframe 的行为方式。
【问题讨论】:
-
等等。 iframe是100宽高,基本是逃不掉的?而你正在尝试用 JavaScript 来修复它?
-
不,它适合窗口。我们只是有一个覆盖层,需要用户在屏幕上向上滑动。因为他们的 iframe 不可滚动,所以此代码不起作用。在这种情况下,我们只想隐藏叠加层,但无法检测到它们的 iframe。
-
我意识到 crossDomain.xml 策略是可行的方法,但如果我们能避免这种情况,那就更好了。
-
必须有一种方法来检测它。 iframe 在代码中是否可见?它是浏览器还是应用程序或其他东西?
标签: javascript html iframe cross-domain