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;
然后你可以串联或任何你想要的。
有没有办法获取页面 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;
然后你可以串联或任何你想要的。