我目前正在构建一个 HTML/JS AIR 应用程序。应用程序需要向用户显示不同的“窗口”——这取决于他们是否是第一次启动应用程序。这部分实际上很好,我有下面的代码来做到这一点:
if(!startUp()) { // this simply returns a boolean from a local preferences database that gets shipped with the .air
// do first time stuff
var windowOptions = new air.NativeWindowInitOptions();
windowOptions.systemChrome = 'none';
windowOptions.type = 'lightweight';
windowOptions.transparent = 'true';
windowOptions.resizable = 'false';
var windowBounds = new air.Rectangle(300, 300, 596, 490);
var newHtmlLoader = air.HTMLLoader.createRootWindow(true, windowOptions, true, windowBounds);
newHtmlLoader.load(new air.URLRequest('cover.html'));
}
else {
// display default window
// just set nativeWindow.visible = true (loaded from application.xml)
}
但是,我想要做的是在加载后从内部操作html 内容。cover.html
网上似乎有很多关于如何移动、调整大小等的教程NativeWindow
,但我只是想访问NativeWindow
的 HTML 内容。
例如,我如何向该页面添加一个新段落?我尝试了以下方法:
newHtmlLoader.window.opener = window;
var doc = newHtmlLoader.window.opener.document.documentElement;
使用 AIR 的 Introspector 控制台,....log(doc)
返回[object HTMLHtmlElement]
.
嗯,看起来很有希望吧?然后我继续尝试:
var p = document.createElement('p');
var t = document.createTextNode('Insert Me');
p.appendChild(t);
doc.appendChild(p);
...但没有插入任何内容。我还尝试了以下替换doc
:
var doc = newHtmlLoader.window.opener.document.body; // .log(doc) -> [object HTMLBodyElement]
var doc = newHtmlLoader.window.opener.document; // .log(doc) -> Error: HIERARCHY_REQUEST_ERR: DOM Exception 3
...以及 jQuery 的以下内容:
$(doc).append('<p>Insert Me</p>'); // again, nothing
那么,任何人都有以NativeWindow
编程方式访问 a 的内部内容的经验吗?任何帮助将不胜感激。