我有一个正在加载mx:HTML
的AIR应用。我想屏蔽其中显示的广告,就像Adblock Plus for Firefox一样(请参阅http://adblockplus.org/en/)。我订阅了Easylist USA过滤器。
var req:URLRequest = new URLRequest("http://www.google.com");
thisHtmlWindow.open();
thisHtmlWindow.htmlContent.htmlLoader.load(req);
我不知道从哪里开始中断动作脚本中的HTML GET-ting过程。这是我怀疑我可以添加HTTP过滤器的地方。订阅过滤器并定期下载/更新它以确保主要广告网络被阻止是很好的。
答案 0 :(得分:1)
好问题。我首先拦截从请求返回的结果,操纵HTML,然后将其加载到HTMLLoader中。您可以通过最初使用URLLoader而不是HTMLLoader检索内容来执行此操作。获取并操作内容后,使用HTMLLoader.loadString将其设置为HTMLLoader。希望有所帮助。
编辑:这里有一些代码。var urlLoader:URLLoader = new URLLoader();
public function loadUrl(url:String):void {
var request:URLRequest = new URLRequest(url);
_urlLoader.addEventListener(Event.COMPLETE, onHtmlLoaded);
_urlLoader.load(request);
}
private function onHtmlLoaded(event:Event):void {
_urlLoader.removeEventListener(Event.COMPLETE, onHtmlLoaded);
// This is where you can mess with the data before setting it
var content:String = _urlLoader.data as String;
myHtmlComponent.htmlLoader.loadString(content);
}