У меня есть веб-страница со встроенным iFrame.IFrame приходит из того же домена (в данном случае localhost).
Я получаю эту ошибку:
Заблокирован фрейм с источником "http://www..com" издоступ к фрейму перекрестного происхождения.
Итак, я провел небольшое исследование и решил внедрить одно найденное «исправление».
Итак, вот как я его настроил.
На моей странице GameMedia.aspx у меня есть этот javascript:
<script src="scripts/avatarManager.js"></script>
И у меня есть этот iFrame в HTML:
<div id="monsterGallery">
<iframe id="avatarList" src="monsterList.aspx?gameID=<%=gameID%>"></iframe>
</div>
В avatarManager.js у меня естьthis:
var frame = document.getElementById('avatarList');
frame.contentWindow.postMessage("avatarManager-reload-iframe", '*');
window.addEventListener('message', function (event) {
if (event.data === "avatarManager-reload-iframe") {
updateAvatarList();
}
});
function updateAvatarList() {
document.getElementById("avatarList").contentDocument.location.reload(true);
}
Теперь я получаю эту ошибку в avatarManager.js:
Uncaught TypeError: Невозможно прочитать свойство 'contentWindow' из null
в этой строке:
frame.contentWindow.postMessage("avatarManager-reload-iframe", '*');
Я не совсем уверен, почему это происходит. Я устанавливаю "var frame" равным моему элементу iFrame.
Есть ли что-нибудь, что я 'м отсутствует?
Спасибо!