Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检测页面是否在iframe中并获取iframe id_Javascript_Html_Iframe_Cross Domain - Fatal编程技术网

Javascript 检测页面是否在iframe中并获取iframe id

Javascript 检测页面是否在iframe中并获取iframe id,javascript,html,iframe,cross-domain,Javascript,Html,Iframe,Cross Domain,我们有一个游戏,我们的一个客户正在尝试将游戏加载到他们的iframe中。出于某种原因,他们需要锁定地址栏,并在iFrame中添加了滚动=“否”样式 这打破了我们的游戏,因为我们有一个滚动覆盖,他们永远无法摆脱 我正在寻找一种方法来获取iframe并检查iframe id,而不需要在其域上使用跨域策略。这可能吗。我只需要iframeID,或者检查样式,看看它是否可滚动 我觉得这是不可能的,因为浏览器跨域安全,但我想问一下这里,看看是否有人有任何建议 我正在尝试这个 var ganFrame = d

我们有一个游戏,我们的一个客户正在尝试将游戏加载到他们的iframe中。出于某种原因,他们需要锁定地址栏,并在iFrame中添加了滚动=“否”样式

这打破了我们的游戏,因为我们有一个滚动覆盖,他们永远无法摆脱

我正在寻找一种方法来获取iframe并检查iframe id,而不需要在其域上使用跨域策略。这可能吗。我只需要iframeID,或者检查样式,看看它是否可滚动

我觉得这是不可能的,因为浏览器跨域安全,但我想问一下这里,看看是否有人有任何建议

我正在尝试这个

var ganFrame = document.getElementById( ganId );
它将返回它应该返回的null

召唤

var ganFrame = window.top.getElementById( ganId );
但是我得到了预期的跨域错误。是否有一种方法可以检测此iframe而不出错。我不需要访问它,只是想看看它是否存在

我可以检测window.top!=但我们还有其他客户需要我们在iframe中使用覆盖

注意

客户端不会更改其iframe的行为方式

客户端不会更改其iframe的行为方式

您的客户是否愿意更改游戏的url? 例如,您可以让他们在url中传递一个参数,如:


您可以检查是否设置了document.referer,但用户可能会禁用该referer并破坏您的代码。

我知道这是一个黑客攻击,但它解决了我的问题

因为我知道我要找的帧的id,所以我可以使用这个代码来获得想要的效果

if(window.top != window.self){
    try {
        var ganFrame = window.top.getElementById("gameFrame");
    }
    catch ( e ) {
        isIOS7HelperDisabled = true;
    }
}

只是希望不会由此引发其他错误。可能需要检查错误类型。

请稍候。iframe的宽度和高度均为100,并且基本上不可逃避?你想用JavaScript修复它?不,它适合窗口。我们只是有一个覆盖,需要用户在屏幕上滑动。因为他们的iframe是不可滚动的,所以这段代码不起作用。在这种情况下,我们只是想隐藏覆盖,但无法检测到它们的iframe。我意识到crossDomain.xml策略是可行的,但如果我们能够避免,那就更好了。必须有一种方法来检测它。iframe在代码中是否可见?它是一个浏览器还是一个应用程序还是其他什么?虽然这会起作用,但在过去,他们非常不愿意适应我们并做出改变。我们有游戏内促销和优惠,并为此使用url参数。由于该客户端拒绝更改其目的,我们不得不将其默认为关闭。此解决方案不起作用。如果调用window.top的任何方法,都会出现跨域错误。