AS3 AIR:如何在渲染之前删除HTMLLoader中的html元素?

时间:2011-12-24 14:34:10

标签: flash actionscript-3 actionscript air

我正在通过Adobe Air制作自定义网络浏览器。

我想添加一个禁用javascript&的html过滤器功能iframe中。

如果我可以在渲染之前获取HTML代码,我会使用regexp删除标记元素。

当htmlloader的LocationChangeEvent调度时,我想我可以使用htmlloader。

2 个答案:

答案 0 :(得分:3)

Kim,您可以使用以下内容访问HTML:

myHtmlLoader.window.document.childNodes[0].innerHTML

但是你需要确保在加载文档之前不要访问它(见上文),否则它将为null。

当我在加载一个简单文件时使用上面的代码时,我看到了:

<body marginwidth="0" marginheight="0">hello world</body>

如果您无法使用上述内容,请告诉我,我会尝试提供一些示例代码。

答案 1 :(得分:0)

您需要在加载程序上捕获Event.HTML_DOM_INITIALIZE。在这一刻,加载了html,创建了DOM树,还没有启动脚本。然后,您可以从加载器获取window对象并修改其子级层次结构(请注意,这不是使用正则表达式删除标记。)
您还可以加载html,将其解析为文本,应用过滤器并再次将过滤后的文本设置为html,但随后您将获得另一个HTML_DOM_INITIALIZE事件以及html损坏的风险。当然,选择是你的。