IE js innerHTML textarea 無換行 處理

.

IE 瀏覽器 javascript id innerHTML 取值,在傳給 textarea 無換行 處理 解決

算是在用 Easy Guest board 留言板 時處理的一個問題,PO出來給大家參考。

避免代碼被瀏覽器解析掉,因此用成圖片,只是範例沒幾行code,簡單流程說明一下。

php 用 nl2br 加上換行加br標籤,後 js 用 innerhtml 取 id 內的值,在至 textarea 顯示,如下圖:

( 點圖放大檢視 )


.

firefox 及 chrome 下正常,如下圖:





.

IE 下,沒換行效果,如下圖:



.

這問題在測試easy留言板就發現這小bug,原本懶的處理,
反正留言板大部份都2~3行,沒什麼差,後來用了差不多了,
也想了2~3天,也試了幾種方式,最後才想到是我想錯方向。

IE 無換行,是innerHTML抓取時將換行符去掉了,
所以只需要對innerHTML取出的值做處理,就可解決這問題。

Firefox及Chrome 換行符只有n
IE 換行是回車符r及換行符n

php內將r取代為空,n取代為br標籤,
這樣不論那種瀏覽器結果都會一樣,
在對innerHTML取出的值,將裡面br標籤替換成換行符,
如下圖:

( 點圖放大檢視 )


.

IE 輸出結果,如下圖:



.

這應該滿常用到的吧,現在網頁大部份都在單頁上做編輯及處理,
算是重新整理easy guest borad留言板時遇上的問題,
在此做了簡易說明,希望能對大家有所幫助。

.

沒有留言:

張貼留言

由於經常被灌水,所以您再發表留言之後,需要耐心的等待博客主之審核,於審核過後才會公開您的留言,因此請您不要重複的留言,謝謝您的留言。
Hello my friend, I have no money, I am very poor, My blog is super chill, I welcome your comments, but in order to maintain a healthy discussion, please avoid spam or irrelevant comments.