Задать вопрос
m0dE
@m0dE

Проблема с iframe в Opera?

Добрый день. Используется загрузка видео в определенный Youtube-канал на самом сайте. При помощи JS создается форма и iframe (name=«myframe»), для формы указываю через атрибут target этот созданный iframe. В самом Youtube API после загрузки видео, делается редирект на url содержащий GET параметры status и id:

testik.ru/upload.php?status=200&id=[id_video]


В Chrome и Firefox я могу получить нужный мне адрес из iframe:
window.frames['myframe'].location.href

А Opera всегда возвращает about:blank, и к тому же не отображает содержимое iframe… Т.е. само видео загружено, а получить корректный ID видео я не могу.


Сейчас более подробно опишу, как я создаю форму и фрейм:

//Ответ от Youtube-API
json = {
    url: [url_from_youtube]?nexturl=[my_url],
    token: [access_token_from_youtube]
}

var form = $('<form action="' + json.url + '" method="post" enctype="multipart/form-data">');
form.attr('id', 'iform');
form.appendTo(document.body);
form.css({
    'position': 'absolute',
    'top': '-50%',
    'left': '-50%'
});

var file = $('#' + fileId);
file.attr('name', 'file');
file.appendTo(form);
var hidden = $('<input type="hidden" name="token" value="' + json.token + '">');
hidden.appendTo(form);

var iframe = $('<iframe>');
iframe.css({
    'position': 'fixed',
    'top': '50%',
    'left': '50%',
});
iframe.attr('name', 'iyoutube');
frame.attr('id', 'iyoutube');
iframe.appendTo(document.body);

form.attr('target', 'iyoutube');
form.submit();

iframe.load(function() {
var uri = window.frames['iyoutube'].location.href;
    console.log(uri); // Opera return 'about:blank'
});


Извините, может очень глупый вопрос, все время сижу только Chrome… Можно ли как-то решить проблему с Оперой?


Спасибо!!!
  • Вопрос задан
  • 4545 просмотров
Подписаться 2 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
m0dE
@m0dE Автор вопроса
Чо никто не знает?
Ответ написан
Комментировать
@mamchyts
Не совсем понятно, как это работает, но мне кажется что дело где-то здесь:
iframe.load(function() {
var uri = window.frames['iyoutube'].location.href;
    console.log(uri); // Opera return 'about:blank'
});

Ибо window поидее должен быть равен iframe, а вы хотите что бы он был parent.
Ответ написан
@mayorovp
Я так понимаю, после загрузки видео делается редирект обратно на ваш сайт, и вы желаете узнать id уже оттуда?

Ну так разместите на этой странице код
<script>
  if (parent.upload_done)
    parent.upload_done(..., ...);
</script>


Осталось в основном фрейме сделать функцию upload_done
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект