У меня есть код для встраивания, который пользователи могут размещать на своих сайтах. Он создает два дочерних iframes на странице. Я хотел бы, чтобы эти дети могли общаться.
Я использую javascript window.postMessage
https://developer.mozilla.org/en-US/docs/DOM/window.postMessage
Поскольку два дочерних элемента iframe не могут напрямую связываться, я использую родительский элемент как реле для сообщений. Однако родитель может находиться в другом домене, так как он встраивается в код.
Когда все три (родительский и двое детей) находятся в одном домене, это довольно просто, и я работаю с проверкой безопасности, проверяя, что e.origin
- это мой собственный сайт
# coffeescript
# host = "http://www.mysite.com"
host = "http://localhost"
receive_message = (e) ->
console.log("received message from " + e.origin + ": " + e.data)
return if e.origin != host
if e.data == "show"
...
else if e.data == "hide"
...
window.addEventListener("message", receive_message, false)
Что такое элегантный способ проверить происхождение, когда родитель может находиться в любом домене?
Что такое хороший способ разрешить отладку script, где источник может быть localhost?
Достаточно ли просто проверить параметр данных, если передаются неразрушающие/изменяющиеся сообщения?
Спасибо!