Обнаружение изменения iFrame SRC с помощью JQuery - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть приложение MVC, которое загружает пакет видео контента (от стороннего поставщика) в iFrame. При нормальных обстоятельствах, когда вы обращаетесь к этой третьей стороне за извлечением контента, вы передаете ему параметр ReturnURL, который сообщает проигрывателю поставщика, куда перенаправить после завершения работы модуля видео контента. К сожалению, некоторые новые обновленные пакеты не поддерживают перенаправление. Вместо перенаправления на указанный URL-адрес перенаправления после завершения модуля содержимого он просто перенаправляет iFrame на страницу с именем «goodbye.htm» (которая все еще находится в том же домене, что и сторонний поставщик).

В соответствии с рекомендацией, поставщик предложил, чтобы у нас был iFrame для прослушивания, когда sFc iFrame переходит на эту страницу «goodbye.htm», а затем выполнял код, который нам нужно перенаправить.

Одна из проблем, с которыми мы столкнулись, это получение кода iFrame ПОСЛЕ того, как он меняется. Очевидно, что просто получение атрибута src из iFrame возвращает только исходный src, даже после его изменения. Другая проблема, конечно, заключается в том, что домен страницы goodbye.htm отличается от домена нашего приложения и родительского окна, поэтому он нарушает Политику Same-Origin.

Ниже приведена наша функция 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();
    }
})

Кто-нибудь знает, как мы можем достичь нашей цели?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...