2014-09-02 99 views
-1

那麼,我想要獲取預標記內部的HTML,並將其轉換爲可讀文本!將腳本html標記轉換爲純文本

我的代碼工作的大部分事情:

var pre = document.getElementsByTagName("pre"); 

for(i in pre) { 
    pre[i].textContent = pre[i].innerHTML; 
} 

但它不爲腳本標記,它們變成文字之前會進行裝載作業。 我真的不想用整個庫來做到這一點,如果它甚至是可能的。

E.g.即使在<pre>標籤內,也會顯示以下提醒。

<pre> 
    <script>window.alert("Test!");</script> 
<pre> 

有什麼建議嗎?

+1

這些腳本是否處理'

'的內容? –
                        
                            
                                2014-09-02 12:21:48
                            
                        
                    

+0

我不認爲你可以阻止'script'標籤被執行。如果瀏覽器遇到'script'標籤,它將立即執行。 – bzeaman 2014-09-02 12:25:18

+0

不,它類似於'',我不想執行它,只是爲了顯示爲純文本。 – 2014-09-02 12:25:24

回答

1

爲了使某些標籤可讀,只需將<改爲&lt;>改爲&gt;即可。瀏覽器不會執行任何操作,用戶仍然可以看到<script>alert(321)</script>

+0

我可以建議正則表達式,如果你打算這樣做。 – 2014-09-02 12:35:12

+0

@PopeyGilbert正則表達式或簡單替換就可以了。 – Justinas 2014-09-02 12:40:14

+0

這不是問題的答案。 「我的代碼適用於大多數事情」。它已經在工作,除了'腳本'標籤,因爲它們在被更改之前正在執行。 – bzeaman 2014-09-02 12:42:08

0

script-標籤遇到時,它們將被執行。這意味着pre-標籤中的script-標籤在處理之前應該被「轉義」。

執行此操作的一種方法是在處理pre s之前轉義其內容(例如,通過PHP)。

在加載之前,您無法訪問pre標籤,並且無法阻止script-標籤在已經加載時執行。