О пост-сообщении javascript в родительский HTML-фрейм, который находится на локальном диске - PullRequest
3 голосов
/ 29 марта 2011

Я работаю над проектом, который предусматривает размещение веб-страницы в iframe, в то время как родительский iframe хостинга находится в файле HTML на локальном диске, например, на c: \;в то время как внутренний размещенный iframe находится на каком-либо сервере.Две веб-страницы должны выполнять пост-сообщение друг с другом.

Для родительского iframe (на локальном диске) нет проблем с пост-сообщением во внутренний фрейм, поскольку он знает домен внутреннего фрейма;

Но когда внутренний iframe должен отправить сообщение обратно в родительский iframe, он должен предоставить домен родительского iframe, который находится на локальном диске.

Я попробовал следующее во внутреннем HTML, чтобы отправить сообщение в его родительский IFrame, который находится на локальном диске:

*var messageToSend = {
                        jsonrpc: "2.0",
                        result: [result]
                    };
window.parent.postMessage(JSON.stringify(messageToSend), "file://");*

// window.parent IFrame - это файл HTML, который находится на Localdisk

Но когда я пытаюсь использовать "file:" в качестве домена в postmessage обратно к родительскому iframe, я получаю сообщение об ошибке "Недопустимый аргумент".

Может ли кто-нибудь помочь?Каким должен быть домен "html локального диска"?Любые советы будут высоко оценены.

Приветствия

1 Ответ

5 голосов
/ 31 марта 2011

Я не знаю, как указать «файл», я думаю, что нет никакого способа, потому что это не имеет особого смысла. Целью источника является предотвращение просмотра вашего сообщения другими (предположительно вредоносными) страницами, но если источником является просто какой-либо файл на жестком диске, любой может увидеть его, создав html-файл с фреймом и загрузив веб-страницу из ваш сервер. Так что указание «file» (даже если есть способ) не более безопасно, чем указание «*», поэтому просто используйте «*» и избавьте себя от головной боли.

...