2014-09-02 2 views
-1

Ну, я хочу, чтобы HTML, который находится внутри pre-тегов, превратил его в читаемый текст!Включить тег 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

Этот сценарий управляет содержимым '

'? –
                        
                            
                                
                            
                        
                    

+0

Я не думаю, что вы можете запретить выполнение тегов 'script'. Если в браузере обнаружены теги 'script', он немедленно выполнит его. – bzeaman

+0

Нет, это что-то вроде '', который я не хочу исполнять, просто чтобы показать как обычный текст. –

ответ

1

Чтобы сделать какой-либо ярлык доступным, просто измените < на &lt; и > на &gt;. Браузер не выполнит ни одного из них, и пользователь все равно увидит <script>alert(321)</script>.

+0

Могу ли я предложить регулярные выражения, если вы собираетесь это делать. –

+0

@PopeyGilbert регулярное выражение или простой замена сделаю. – Justinas

+0

Это не ответ на вопрос. «Мой код работает для большинства вещей». Он работает уже, за исключением 'script'-тегов, поскольку они выполняются до их изменения. – bzeaman

0

Когда встречается script -tags, они будут выполнены. Это означает, что script -tags в файлах pre должны быть «экранированы» перед их обработкой.

Один из способов сделать это, чтобы избежать содержимого pre s перед его обработкой (например, PHP).

Вы не можете связаться с pre -tags до того, как они будут загружены, и нет возможности предотвратить выполнение script -tags, если они уже были загружены.

Смежные вопросы