https://developer.mozilla.org/en/DOM/window.postMessage
window.postMessage ()
window.postMessage - это метод безопасного межсетевого обмена. Обычно сценарии на разных страницах разрешены только для доступа друг к другу, если и только если страницы, которые их выполняли, находятся в местах с одним и тем же протоколом (как правило, оба http), номер порта (80 по умолчанию для http) и хост (по модулю document.domain устанавливается обоими страницами на одно и то же значение). window.postMessage предоставляет управляемый механизм, чтобы обойти это ограничение способом, который является безопасным при правильном использовании.
Сводка
window.postMessage, при вызове, вызывает отправку MessageEvent в целевом окне, когда любой ожидающий сценарий, который должен быть выполнен, завершается (например, оставшиеся обработчики событий, если window.postMessage вызывается из обработчика событий, ранее заданных ожидающих таймаутов и т. д.). MessageEvent имеет сообщение типа, свойство данных, которое устанавливается в строковое значение первого аргумента, предоставленного window.postMessage, свойство origin, соответствующее началу основного документа в окне, вызывающем window.postMessage в окне времени. вызывается postMessage и свойство source, которое является окном, из которого вызывается window.postMessage. (Другие стандартные свойства событий присутствуют с ожидаемыми значениями.)
blockquote>Библиотека iFrame-Resizer использует postMessage, чтобы сохранить размер iFrame до его содержимого, а также MutationObserver для обнаружения изменений в содержимом и не зависит от jQuery.
https://github.com/davidjbradshaw/iframe-resizer
jQuery: добросовестность междоменных скриптов
http://benalman.com/projects/jquery-postmessage-plugin/
Имеет демонстрацию изменения размера окна iframe ...
http://benalman.com/code/projects/jquery-postmessage/examples/iframe/
В этой статье показано, как удалить зависимость от jQuery ... Плюс имеет много полезной информации и ссылок на другие решения.
http://www.onlineaspect.com/2010/01/15/backwards-compatible-postmessage/
Пример Barebones ...
http://onlineaspect.com/uploads/postmessage/parent.html
HTML 5 рабочий проект на window.postMessage
http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages
John Resig о межсетевых обменах сообщений / / g29 ]
Вот простой способ сказать Firestore записать метку времени на стороне сервера в документ:
var ref = db.collection("54201787").doc("time");
ref.set({ timestamp: firebase.firestore.FieldValue.serverTimestamp() });
И вот как вы читаете это значение обратно в ваш клиент:
ref.onSnapshot(function(snapshot) {
var timestamp = snapshot.data().timestamp;
console.log(timestamp.toString());
})
[118 ] В этом последнем фрагменте переменная timestamp
является объектом Date
, поэтому вы также можете получить доступ ко всем другим его методам и свойствам.
Рабочий пример этого кода см. По адресу: https://jsbin.com/burimih/edit?html,js,console
.