2015-06-24 9 views
0

У меня есть несколько iFrames (тот же домен) во внешнем домене. Если я делаю window.top.frames ["name-here"]. PostMessage() и фрейм существует, то очевидно, что postMessage выполняется правильно.Cross iFrame postMessage во внешнем домене

Однако в этом случае iFrames являются модульными, поэтому все они не должны существовать. Итак, если я инициалирую «window.top.frames [" name-here "]. PostMessage (" HI "," * ")", и этот фрейм не существует, он повлечет за собой Заблокировал кадр с источником "xyz "от доступа к кадру скрещивания.Я предполагаю, что это не имеет большого значения, поскольку он не будет вызывать ошибок на странице.

Я пробовал прокручивать через window.top.frames с postMessage, но это также вызывает ошибку CORS.

ответ

0

Ошибка, вероятно, не с postMessage, а с доступом к самому кадру. Вызов window.top.frames["name-here"], скорее всего, даст вам то же сообщение. Как вы говорите, я не думаю, что ошибка является большой проблемой, но если вы хотите избавиться от нее, вы можете получить длину frames и отправить свои сообщения соответствующим образом. Например:

var existing_frames = window.top.frames.length; 
+0

Правильно, вопрос не с postMessage. Это исключение CORS. Длина кадров не плохая, но мы не можем точно измерить на основе длины кадра, поскольку это может варьироваться в зависимости от социальных плагинов/виджетов и т. Д. –

+0

ах ок, ну, я думаю, это случай попытки и уловки. –

Смежные вопросы