2011-07-21 33 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並嘗試訪問它嗎?那麼我們至少可以知道它的工作原理,因爲可能還有其他一些問題需要解決:安全性,文件許可等。讓我們一次一個腳印。 –