使用innerHTML擷取HTML代碼時,HTML標記屬性的雙引號好多都消失不見了,原來是屬性值中包含空格才會保留雙引號

來源:互聯網
上載者:User

標籤:style   使用   sp   資料   div   on   問題   代碼   html   

最近搞的一個項目中所使用的方式比較奇怪,用Label顯示HTML內容,然後不斷地使用JS把Label的innerHTML複製到TextBox中。

但是,昨天發現了一個問題,擷取元素值的時候,有時候正常,有時候不正常,然後進入了漫長的DEBUG。。

調試過程中,監測Label和TextBox的值,發現擷取到Label的值是未被改變的,控制項載入的時候是怎樣就怎樣,在頁面中是以SPAN元素顯示,在查看網頁原始碼的時候可以看到被修改了,但是在後台無論怎麼擷取都是頁面載入時賦予的未經修改之前的值。

而TextBox的值,雖然通過JS賦值可以一直擷取到最新的值,但是裡面屬性好多的雙引號都不見了,而有些屬性的雙引號則保留了下來,不知道為什麼。

TextBox在網頁中是INPUT元素,然後我懷疑是不是TextBox不適合用於儲存HTML代碼,然後就換了Label、HiddenField、Div、RenderControl等方法,但是都沒成功。

雖然在網頁中查看Div的innerHTML代碼是正常的,但是在服務端提取不出來,只能另想辦法。

接著我用最原始的方式,使用alert把innerHTML輸出,結果發現alert出來的結果也是沒有雙引號的,這就耐人尋味了,難道是innerHTML自動就把雙引號給去掉了?那我怎麼樣才能讓他正常地顯示出來呢?

試了好久,想找個方法把HTML轉換成XHTML,最終還是以失敗告終。。

試著試著,用了好多不同的資料,嘗試不同的輸入,發現了有個屬性有時候包含雙引號,而有時候卻沒有,我立馬意識到,這是個突破點!

接著,皇天不負有心人,在多次嘗試和觀察之下,被我發現了innertHTML的規律,原來是屬性值中包含空格,則保留屬性的雙引號,否則不保留。

有了這個規律,接下來的問題就好處理了,為什麼我一開始就沒觀察到這個細節呢?

使用innerHTML擷取HTML代碼時,HTML標記屬性的雙引號好多都消失不見了,原來是屬性值中包含空格才會保留雙引號

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.