Я реализовал междоменный IFrame.На моей главной странице я использую эту функцию:
window.addEventListener("message", receiveMessage, false);
function receiveMessage(event)
{
var origin = event.origin || event.originalEvent.origin;
if (origin !== "https://www.domain.xy" && origin !== "https://domain.xy")
return;
$('#gbook').height(event.data + 30);
}
На странице, которая должна использоваться внутри IFrame, я реализовал следующий код:
var height= getAbsoluteHeight('body');
parent.postMessage(
height,
"https://www.domain.xy"
);
Теперь, когда япри открытии моей страницы с URL "https://www.domain.xy" все работает нормально. Но как только я пытаюсь открыть ее с помощью" https://domain.xy" (без "www."), браузер выдает исключение:
Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://www.domain.xy') does not match the recipient window's origin ('https://domain.xy').
Я уже заставил его работать с обходным путем, разместив два сообщения (одно сообщение на "https://domain.xy" и одно сообщение на" https://www.domain.xy"). В результате возникает та же ошибка, нопо крайней мере, это работает.
Есть ли правильное решение для этого?