Javascript Return HTML 和 css 内容作为字符串而不是 javascript

Javascript Return HTML and css content as a string but not the javascript

有没有办法获取页面 HTML , CSS 的所有内容,但排除所有 java 脚本函数和脚本 src?

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

我知道那会给我全部。但我需要从结果中排除 JS

编辑: 修复了正则表达式(non-greedy 版本)

你可以试试这个:

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

正则表达式应该匹配所有 <script> ... </script> 标签,并且什么都不替换。


顺便说一句,这是一个幸运的机会,因为正则表达式本身需要使用 \ 反斜杠转义结尾 </script>,如下所示:<\/script>.

这个转义字符是正则表达式不匹配自身的原因,这会导致它失败。所以,它之所以有效,是因为通过正确地转义它,它不再是 self-similar。

另一种选择是使用 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;

然后你可以串联或任何你想要的。