2011-08-15 51 views
1

我一直負責構建一個新的Javascript文件瀏覽器,但不幸的是我必須使用Prototype,並且由於可能由衝突引起的一些問題(他們已經表示他們計劃了),因此無法使用Jquery(至少目前沒有)解決這個問題,但目前看起來我可能不得不使用原型)。我一直在谷歌上尋找我可以用於Prototype/Scriptaculous的插件,但它們似乎很少,而且我發現所有這些插件都適用於PHP。我想我可能能夠將PHP端重寫爲Java/JSP,因爲我們的應用程序是使用Java構建的。我只是想,我會在這裏發佈,看看是否有人可以推薦一個好的插件,這可以很容易地與Java集成。由於用於與JSP/Java集成的文件瀏覽器的原型/ Scriptaculous Javascript插件?

編輯:這是我的意思是:

http://abeautifulsite.net/blog/2008/03/jquery-file-tree/(這是jQuery中),所以我需要的是這樣的原型

這是用於瀏覽服務器,而不是客戶端的文件系統,所以會有一個服務器端頁面/控制器返回一個文件/文件夾的HTML列表,然後JavaScript根據需要操作它來摺疊/展開。有一堆這些寫在jQuery的但不幸的是我似乎無法找到一個與原型

回答

1

正如Diodeus指出的那樣,正如您自己的示例所展示的那樣,以及大多數可用的文件瀏覽器插件可用,它可用於由服務器呈現並返回的HTML。所有的JavaScript需要做的就是插入返回的HTML,Prototype有一個功能,它可以幫你做到這一點,Ajax.Updater。你可以很快寫出你自己的。

function expandCollapseFolder(event, folder) { 
    var list = folder.down('ul'); 
    if (list) list.toggle(); 
    else new Ajax.Updater(folder, 'URL-OF-SERVER-PAGE', 
    { 
     parameters: { path: folder.readAttribute('data-path') }, 
     insertion: 'bottom' 
    }); 
} 

Event.on('ID-OF-FILE-BROWSER', 'click', 'li.folder', expandCollapseFolder); 

以上是未經測試的代碼,它的意思是顯示總共需要多少。艱苦的工作是由服務器完成的,它需要掃描並返回具有適當文件圖標和URL的文件夾內容。

<ul> 
    <li class="folder" data-path="/folder"> 
     <img src="folder-icon.png" />This is a folder 
    </li> 
    <li> 
     <a href="URL-OF-FILE" target="_blank"> 
      <img src="file-icon.png" />This is a file 
     </a> 
    </li> 
</ul> 
0

我一直在尋找在谷歌,我可以使用原型 /Scriptaculous的的插件寫,但他們似乎很少以及遠在和所有的我 已經找到適合使用PHP。

根據你的問題,我不確定你需要完成什麼。

原型& Scriptaculous是JavaScript的附加庫,就像jQuery一樣。他們絕對沒有沒有與PHP,Java或任何其他服務器端語言,因爲他們是客戶端的一部分:JavaScript。

如果您打算在服務器上瀏覽文件,則只需將文件列表的HTML表示形式發送給瀏覽器即可。你會使用Prototype來操縱這個HTML。

無論您使用的是jQuery還是Prototype,都沒有基於Javascript的客戶端文件瀏覽器,因爲JavaScript無法在客戶端計算機上看到本地文件系統。這是出於安全考慮而故意設計的。

+0

這就是我的意思:http:// abeautifulsite。net/blog/2008/03/jquery-file-tree /我需要這樣的東西,但是用Prototype編寫,你不需要像我小時候那樣佈置它,也許我不夠清楚,它的一個文件瀏覽器瀏覽服務器端文件,它調用服務器端頁面,輸出包含系統各種文件/文件夾的HTML元素,然後JavaScript根據需要操作這些文件以顯示collabsilbe /可擴展文件瀏覽器。如果已經有一個爲JSP而不是PHP編寫的連接器,但如果需要的話,我可以重寫爲Java,這將是一件好事 – Rick

+0

這裏可能是最完整的Prototpye插件集合(http://scripteka.com/),但我懷疑你會發現任何類似的東西。無論如何,你可能想嘗試使用不衝突模式,只是在jQuery中做。我已經成功地將兩個庫一起使用,並且運行良好。 –

+0

謝謝,是的我同意我應該只是在jquery中執行它,但不幸的是它不是我的決定,我可能最終不得不編寫自定義代碼來執行此操作 – Rick