【问题标题】:Is there a way to get Browser Generated HTML and CSS有没有办法获得浏览器生成的 HTML 和 CSS
【发布时间】:2014-09-23 10:42:48
【问题描述】:

我真的很想知道,有没有什么API或方法可以实现。我想获取浏览器生成的源代码。

在下面的代码中,colorElement 的初始CSS ClassredFontClass,但是onload javascript 对blueFontClass 进行了更改。使用Firebug 非常清楚。我想使用Java 中的URL 调用来获得这种响应。这可能吗?。我不想要任何 Javascript,但希望最终浏览器生成带有 CSS 的 HTML,这对于飞碟类型的 PDF 生成器非常有用。它们暂时不支持 Javascript。

真正的 HTML:

<html>
<head>
<style>
.redFontClass
{
  color : red;
}
.blueFontClass
{
  color : blue;
}
</style>
<script language="javascript"> 
function changeColor()
{
    document.getElementById('colorElement').className='blueFontClass';
    alert("asdfsd");
}   
 </script>
</head>
<body  onload="javascript:changeColor();">
<b>This Should come as <span class = "redFontClass" id="colorElement">Red</span> </b>
</body>
</html>

FireFox Firebug 图片:

更新: 如果我调用该特定文件的 URL,我需要浏览器生成的 HTML。 因为我会从服务器端 Java 代码调用它,而不是使用任何客户端应用程序,例如浏览器。

浏览器生成的 HTML:

<html><head>
<style>
.redFontClass
{
  color : red;
}
.blueFontClass
{
  color : blue;
}
</style>
<script language="javascript"> 
function changeColor()
{
    document.getElementById('colorElement').className='blueFontClass';
    alert("asdfsd");
}   
 </script>
</head>
<body onload="javascript:changeColor();">
<b>This Should come as <span id="colorElement" class="blueFontClass">Red</span> </b>

</body></html>

【问题讨论】:

  • Chrome 默认显示 AFAIK。
  • 我不知道它在内部是如何工作的,但至少 Selenium 的一些驱动程序可以将整个 DOM 转储为 HTML。
  • 你们提出了很好的想法,但我希望使用一些 API 或类似的东西在 java 中生成它们。
  • @sunleo 类似this?
  • @RGraham 我会试试这个链接谢谢你的回复。

标签: java javascript html css cross-browser


【解决方案1】:

您可以将页面的源代码发布回服务器端脚本。

在 jQuery 中你可以有如下函数:

function postGeneratedSource() {
    var data = $('body')[0].outerHTML;
    $.post('/path/to/script', data);
}

如果您不想要 JS,那么您可以为相关容器更改 body,或者在服务器端剥离脚本标签。

【讨论】:

    【解决方案2】:

    您可以使用以下代码获取浏览器生成的整个 HTML 代码:

    var source = '<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>';
    

    【讨论】:

    • 感谢回复,最后这也是我无法从纯 javacode 模拟的 javascript!
    【解决方案3】:

    您生成使用以下代码来获取 html。

            String url = "http://www.google.com/search?q=developer";
            URL obj = new URL(url);
            HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    
            //add reuqest header
            con.setRequestMethod("GET");
            con.setRequestProperty("User-Agent", "Mozilla");
    
    
            BufferedReader in = new BufferedReader(new   InputStreamReader(con.getInputStream()));
            String inputLine;
            StringBuffer response = new StringBuffer();
            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            in.close();
            //print result
            System.out.println("hi"+response.toString());
    

    【讨论】:

    • 这将为我们提供我提到的预期结果,无需浏览器帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2021-09-09
    相关资源
    最近更新 更多