有没有办法显示网页的完整 CSS 样式表,除了获取每个元素的每个样式,如下所示:
document.write("width:"+document.getElementById("to").style.width+";");
CSS 可以在外部文件中,也可以在内部<style>
标签中。
有没有办法显示网页的完整 CSS 样式表,除了获取每个元素的每个样式,如下所示:
document.write("width:"+document.getElementById("to").style.width+";");
CSS 可以在外部文件中,也可以在内部<style>
标签中。
您可以使用document.styleSheets
就像在 document.styleSheets[0].cssRules[0].cssText
最好使用可以“获取”CSS 文件并打印它们的服务器端语言。
过去,我使用 Railo 和一个名为 jSoup 的 Java 库非常容易做到这一点。这不是一个非常流行的设置,但是 jSoup 可以与 Java 一起使用(当然),所以如果你在你的 web 应用程序中使用它,那将是一件轻而易举的事。
我像这样在 Railo 中获取我的页面:
<cfhttp method="get" url="http://example.com" resolveurl="true" result="local.objGet" timeout="10" charset="utf-8">
<cfhttpparam type="header" name="Accept-Encoding" value="*" />
<cfhttpparam type="header" name="TE" value="deflate;q=0" />
</cfhttp>
上面的代码发出一个 HTTP 请求来获取 HTML 页面。
然后我使用 jSoup 遍历 fetch CSS 文件链接的 DOM:
<cfset local.jsoup = createObject("java", "org.jsoup.Jsoup") />
<cfset local.getDocument = local.jsoup.parse(local.objGet.filecontent) />
<cfset local.getCss = reMatch('\bhttps?:[^)''"]+\.(?:css)', local.getDocument) />
这会从文档中获取以“.CSS”结尾的链接数组。然后我可以在数组的循环中使用 HTTP 请求再次对这些进行“获取”。然后我可以将它打印到屏幕上,并根据需要对其进行任何处理。
我知道我的回答是针对特定语言的,但基本原则就在那里。
在 PHP 中,我认为您可以使用 cURL 进行 HTTP 调用,但同样,如果您使用 Java、ColdFusion、Railo 或 BlueDragon,您应该可以使用 jSoup。
希望这可以帮助。
Railo 应用服务器: http ://www.getrailo.org/
jSoup HTML 解析器:http: //jsoup.org/