Как получить доступ к родительскому окну в Adobe Air Apps - PullRequest
1 голос
/ 24 декабря 2010

Ниже приведен пример кода для открытия окна в приложении Adobe Air.

var init = new air.NativeWindowInitOptions();
var bounds = null;
var child = air.File.applicationDirectory.resolvePath('child.html');
bounds = new air.Rectangle(0, 0, 300, 500);
win = air.HTMLLoader.createRootWindow(true, init, false, bounds);
win.load(new air.URLRequest(child.url));

Открытое окно должно иметь доступ к объекту документа родительского окна. Ниже приведен код child.html

<script>

function init() {
    alert(window.parent);
}

</script>

<body onload="init()">

этот код предупреждает нулевое сообщение; Нет ли способа получить доступ к родительскому окну?

1 Ответ

1 голос
/ 09 сентября 2011

Когда вы используете функцию createRootWindow (), вы получаете окно без родителя - это то, что пытается передать «Root» в имени функции (кажется, плохо). Это легко обойти, хотя:

win = air.HTMLLoader.createRootWindow(true, init, false, bounds);
win.load(new air.URLRequest(child.url));
//add
win.window.parent = this.window;

По крайней мере, это общая идея. Возможно, вам придется подождать htmlDOMCreate или завершить событие, прежде чем устанавливать родителя. Кроме того, AIR может позволить вам установить родителя, даже если ребенок находится в другой изолированной программной среде безопасности. Если это так, это будет большой дырой в безопасности вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...