Является ли изменение сценария iframe (домена, отличного от страницы хоста) с использованием javascript межсайтовым скриптингом? - PullRequest
2 голосов
/ 19 сентября 2011

У меня есть страница с iframe, которая не имеет источника при загрузке страницы и просто использует жестко запрограммированный html, например:

<iframe id="theframe" src="">
<html>
    <body>
         <form name="theform" action="http://domainB.com/new" method="POST">
         <input type="text" />
         </form>
    </body>
</html>
</iframe>

Форма затем отправляется в jQuery с использованием

$('#theform').submit();

Это приводит к тому, что источник iframe меняется с ничего (тот же домен) на domainB.com, где данные формы отправляются и сохраняются.

Затем я задерживаю 1сек, чтобы отобразить сообщение об успешном завершении, а затем хочу вернуть фрейм к его исходному содержимому, изменив исходный источник на ничто (тот же домен) и добавив исходную форму, например:

    $('iframe').attr('src', '');
    $('iframe').contents().find('body').empty();
    $('iframe').contents().find('body').append('<form name="theform" action="http://domainB.com/new" method="POST"><input type="text" /></form>');

Однако это не работает ... Является ли это межсайтовым скриптингом, хотя я не пытаюсь получить доступ к внутреннему контенту домена B, я просто устанавливаю src iframe обратно на domainA ??

Если это так, есть ли способ установить src после того, как он был изменен на другой домен?

(Когда я писал последнее предложение, я понял, что могу просто удалить iframe и заменить его новым, я думаю?), Но я все же хотел бы знать, считается ли изменение источника межсайтовым, и поэтому не работает?)

1 Ответ

2 голосов
/ 19 сентября 2011

Это просто возвращает true или false.

$('iframe').attr('src') == '';

Может быть, вы ищете это:

$('iframe').attr('src', '');
...