PostMessage — це новий API крос-оригіналу, впроваджений у html5, який дозволяє двонаправлено спілкуватися з головною сторінкою та будь-якою сторінкою класу кадрів або сторінкою, відкритою через window.open. Загальний процес роботи виглядає так:
Метод postMessage(data,origin) приймає два параметри:
(1) дані: Дані, які потрібно передати, у специфікації HTML5 зазначено, що параметр може бути будь-яким базовим типом JavaScript або відтворюваним об'єктом, але не всі браузери так роблять, деякі браузери можуть обробляти лише параметри рядків, тому потрібно використовувати метод JSON.stringify() для серіалізації параметрів об'єкта при передачі параметрів і звертатися до json2.js у нижній версії IE для досягнення подібних ефектів.
(2) origin: Параметр рядка, який вказує джерело цільового вікна, протокол + хост + номер порту [+URL], URL буде ігноровано, тому його неможливо записати, цей параметр призначений для міркувань безпеки, метод postMessage() передає повідомлення лише до вказаного вікна, звісно, якщо хочете, ви також можете встановити параметр у "*", щоб його можна було передати у будь-яке вікно; якщо хочете вказати той самий початок координат, що й поточне вікно, він встановлюється як "/";
Пишіть і отримуйте повідомлення самостійно
Код виглядає так:
Батьківське вікно надсилає повідомлення дочірньому вікну, і дочірнє вікно отримує це повідомлення
Код виглядає так:
Дочірнє вікно надсилає повідомлення у батьківське вікно, і воно отримує це повідомлення
Код виглядає так:
Крім того, до клієнта підключається простий режим слухача/клієнта для міждоменних повідомлень за такою адресою:Вхід за гіперпосиланням видно.
(Кінець)
|