2015-12-30 2 views
0

Я работаю над своего рода операционной системой, такой как программа, и в ней iframe используются для отображения различных программ. Я работаю над функцией, которая позволит разработчикам автоматически закрывать свои фреймы, например, sys.exit(). Единственное, что мне нужно, это единственный номер, который однозначно идентифицирует iframe, который содержит программу dev - будь то идентификатор, имя, что угодно. Проблема - ошибка безопасности, поскольку все локально. Я полностью контролирую рамку. Также следует избегать использования jquery, но при необходимости.Передайте одно число через iFrame с ограничениями доступа

[EDIT]

ошибка безопасности: «Uncaught SecurityError: Blocked кадра с началом„нулевым“от доступа кадра с началом„нулем“. Протоколы, домены и порты должны соответствовать»

Любые идеи?

Очень ценивший,

-Dylan

+0

Можете ли вы предоставить более подробную информацию о «ошибки безопасности»? – Roberto

+0

Каждый iframe должен иметь уникальный идентификатор. Но без какой-либо структуры сложно сказать вам, как получить к нему доступ. – jeff

+0

@Roberto, я включил ошибку в edit – AlgoRythm

ответ

0

Дайте IFrame идентификатор:

<iframe id="iframeId"></iframe> 

На хостинг странице

var iframe = document.getElementById("iframeId").contentWindow; 

iframe.postMessage('close', 'http://yourdomain'); 

Затем в IFRAME вам нужно сделать, это :

addEventListener("close", functionToCloseWindow, false); 
var functionToCloseWindow = function(){ 
window.close(); 
} 

Вот некоторая информация о() API PostMessage: https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage

+0

Я не уверен, что понимаю, что делает это решение. Не могли бы вы объяснить это больше? – AlgoRythm

+0

Конечно. В основном вам нужно использовать postMessage() для связи между вашим сайтом хостинга и iframe. Это мера безопасности. Он позволяет передавать строки. Вы можете передать строку «close» и прослушать ее с другой стороны, вызывая функцию закрыть окно после его получения. Надеюсь, что выяснится :-) – itamar

+0

А, я вижу. К сожалению, все это локально, и моя проблема - политика одного и того же происхождения – AlgoRythm

Смежные вопросы