通过JQuery检测iFrame SRC更改

时间:2019-04-24 16:41:11

标签: c# jquery iframe

我有一个MVC应用程序,可将视频内容包(来自外部第三方供应商)加载到iFrame中。通常情况下,当您致电此第三方以检索内容时,会向其传递一个ReturnURL参数,该参数告诉供应商的播放器在视频内容模块完成后将重定向到何处。不幸的是,某些新的更新程序包不支持重定向。内容模块完成后,它没有重定向到指定的重定向URL,而只是将iFrame重定向到一个名为“ goodbye.htm”的页面(该页面仍与第三方供应商位于同一域中)。

根据建议,供应商建议我们在iFrame上安装一个侦听器,以检测iFrame src何时更改为此“ ​​goodbye.htm”页面,然后执行我们需要重定向的代码。

我们遇到的问题之一是在iFrame更改后获取iFrame的src。显然,即使从iFrame更改了src属性,它也只会返回原始的src。当然,另一个问题是,goodbye.htm页面的域与我们的应用程序和父窗口的域不同,因此它违反了“同源策略”。

下面是我们用来尝试重定向的JQuery函数。

$('.js__iframe-play').on('load', function () {
    var src = $(this).attr("src");
    if (src.includes("goodbye.htm")) {
    const url = "/Learn/GetResults/" + $(this).data("class-id") + "?regid=" + $(this).data("registration-id");
    console.log(url);
    const newiframe = $(this).clone();
    newiframe.attr("src", url);
    $(this).after(newiframe);
    $(this).remove();
    }
})

有人对我们如何实现目标有任何想法吗?

0 个答案:

没有答案