2017-02-16 15 views
0

есть ли способ получить весь контент страницы HTML, CSS, но исключить все функции java-скрипта и скрипт src?Javascript Возвращает содержимое HTML и css как строку, но не javascript

 var htmlPage = $("html").html(); 
    console.log(htmlPage); 

Я знаю, что это даст мне все это. но мне нужно, чтобы исключить JS из результатов

+0

Вы можете попробовать это http://stackoverflow.com/questions/6659351/removing-all-script-tags-from-html-with-js-regular-expression –

+0

Возможный дубликат [Удаление всех тегов сценариев из HTML с регулярным выражением JS] (http://stackoverflow.com/questions/6659351/removing-all-script-tags-from-html-with-js-regular-expression) –

+0

Итак, мне нужно было установить регулярное выражение для выражения, жадный, потому что он удалил слишком много HTML. Теперь это работает. – pid

ответ

2

EDIT: фиксируется регулярное выражение (нежадная версия)

Вы можете попробовать это:

var htmlPage = $("html").html().replace(/<script[\s\S]*?<\/script>/mig, ""); 

регулярное выражение должно соответствовать всем <script> ... </script> теги и заменить их ничем.


BTW это своего рода удачный выстрел, потому что само регулярное выражение требует окончания </script> быть экранированы с \ обратной косой черты: <\/script>.

Этот escape-символ является причиной того, что регулярное выражение не соответствует самому себе, что может привести к его провалу. Таким образом, он работает, потому что, избегая его правильно, он больше не является самоподобным.

+0

perfect ya Я тоже играл с ним, и я получил этот var htmlPage = $ ("html"). Html(). Replace (/

0

Другой вариант - использовать Element.innerHTML и включать контент, который вы хотите получить. Например:

<!doctype html> 
<html> 
    <head> 
    <!--Css links goes here--> 
    </head> 
    <body> 
    <!--Your content--> 
    <p>Hello World</p> 
    </body> 
<script> 
//Js 
</script> 
<html> 
var body = document.body.innerHTML; 
var head = document.head.innerHTML; 

Тогда вы можете concadenate или что вы хотите.

+1

Я бы не рекомендовал ничего помещать вне '' и '' тегов. Стандарт HTML5 не позволяет этого, и он разбивает страницу на некоторых браузерах. Это также плохая практика написания неаудирующего HTML в 2017 году. Подробнее смотрите здесь: http://stackoverflow.com/questions/3037725/is-it-wrong-to-place-the-script-tag-after- тело-тег. Я не склоняюсь вниз, потому что этого комментария достаточно для коррекции. Приятного дня, сэр. – pid

+0

Ты совершенно прав. Спасибо за информацию. –

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

  • Нет связанных вопросов^_^