2010-12-14 40 views
1

我有一个AIR应用程序加载mx:HTML s。我想阻止Adblock Plus for Firefox中显示的广告(请参阅http://adblockplus.org/en/)。我订阅了Easylist USA过滤器。actionscript htmlLoader块广告

var req:URLRequest = new URLRequest("http://www.google.com"); 
thisHtmlWindow.open(); 
thisHtmlWindow.htmlContent.htmlLoader.load(req); 

我不知道从哪里开始中断动作脚本中的HTML GET-ting过程。这是我怀疑我可以添加HTTP过滤器的地方。订阅过滤器并定期下载/更新过滤器以确保主要广告网络被阻止会很好。

回答

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); 
} 
+0

请问您是否提供了完成此操作的基本代码?我可以很容易地在perl和PHP中执行此操作,但Actionscript可能是我最弱的语言。我已经设置好了,可以逐行比较简单列表文件。 – ojreadmore 2010-12-23 17:06:01