2011-07-21 51 views
0

我使用htmlLoader.loadString(someHtml)加载网站。包括JS来源。 有没有机会获得这个JS文件中的函数?loadString(...) - 访问JS函数

我还将属性placeLoadStringContentInApplicationSandbox设置为true。

+0

究竟你在做什么,为什么你需要这个功能?目的是什么? –

回答

0
+0

很酷,但是当你试图从应用程序存储或用户目录加载JS时,这个失败.. – pawlus

+0

但是这个问题似乎与你的问题有点不相干。你是什​​么意思,它失败了?是否存在安全问题,甚至无法加载HTML源代码?那么,你当然不能使用JS。我不确定这是否会有所帮助,但http://forums.adobe.com/thread/435399在我的一个AIR项目中,我能够拉动受密码保护的zip文件,实时打开它,找到一个HTML文件并提取数据。如果我记得很清楚,我甚至在其中使用了一些JS函数。也许有些代码会帮助我们。 –

0

的问题是,如何让访问JS功能 - showAlert()?在这种情况下,我使用userDirectory来存储文件。这两个文件 - txt(里面有html源代码)和JS - 都在这个目录中 -/Users/unsername /。希望现在一切都会清楚。感谢帮助。

private function init():void 
     { 
     var testFile:File = File.userDirectory.resolvePath("testreadonly.txt"); 

     var readFileStream:FileStream = new FileStream(); 
     readFileStream.open(testFile, FileMode.READ); 
     var test:String = readFileStream.readMultiByte(testFile.size, File.systemCharset); 

     var myJS:File = File.userDirectory.resolvePath("myJS.js"); 

     trace("my JS : " + myJS.exists);//it shows TRUE 

     myHTML.htmlLoader.placeLoadStringContentInApplicationSandbox = true; 
     myHTML.htmlLoader.loadString(test); 
     } 

我的HMTL文件来源:

<html><body><script type='text/javascript' src='myJS.js'></script><script type='text/javascript'>showAlert()</script>Pawel</body></html> 

我的JS文件:

function showAlert() 
{ 
    alert('alert'); 
} 
+0

据我记得,我的JS功能是在HTML代码。我看到你试图访问外部的JS文件。作为一个概念证明,你可以尝试将JS集成到HTML并尝试访问它吗?那么我们至少可以知道它的工作原理,因为可能还有其他一些问题需要解决:安全性,文件许可等。让我们一次一个脚印。 –