2007年1月16日 星期二

[補充]在文章中加入Expand/Collapse的功能

之前講到可以在文章中加入Expand/Collapse(或是Show/Hide,延伸閱讀,繼續閱讀)的功能,今天實際試作了一下自動加入的功能,卻發現目前自動加入的功能有一些不如人意的地方.
最嚴重的問題是,自動加入的功能目前的作法是藉由判斷<br>(換行標籤)的個數來決定在何處將Expand/Collapse功能加入文章,依照HTML的特性,就會出現如下的問題:

<blockquote>
1. ...<br>
2. ...<br>
3. ...<br> Call hidepost here!!
</blockquote>
發現問題了嗎?
如果很不幸的,你的Expand/Collapse的功能正好加在HTML標簽之間,就會破壞HTML的結構,當然原本想要顯示的Expand/Collapse功能也沒有任何作用了....
要解決這樣的一個問題,最直接的想法是剖析並記錄加入點之前所有的HTML標簽,並在加入點之前,強迫所有HTML標簽關閉,而在加入點之後,再重新開啟.不過這樣的做法相當麻煩,也必須對Javascript有比較深入的了解,所以我也懶得繼續研究了...暫時,還是先手動加入好了....

3 則留言:

qq0526 提到...

請問能在產生『繼續閱讀』前,先判斷quoteblock是否存在,然後產生相對應的/quoteblock嗎?我想這樣或許可以解決問題。

qq0526 提到...

或者讓quoteblock內的文章中的br
不列入計算,從那之後三個br後再隱藏

Chen-Hai, Teng 提到...

理論上是可以的,不過要做到完整很麻煩...
因為HTML的標簽區塊是可以一層包一層的,有階層性的關係.真的要做的話,得學習Google在Pages及Doc&Sheet編輯器的做法,針對每一層標簽做Push至stack的動作,然後在目標點做Pop以及重新包裝區塊的處理...
看來還是得等有時間,好好看一下JSP才行了...XD