[英]how to render javascript in server side
我通过使用java.net.URL和Input Streams以字符串形式获取网页内容。
问题是我的JavaScript无法呈现,并且即时获得响应。
<html>
<head></head>
<body>
<script>
document.write("<h1>hello world!</h1>");
</script>
</body>
</html>
假设这是用HTML文件编写的代码..现在,当我以字符串形式获取网页内容时,我想要的是JavaScript应该被渲染。
<html>
<head></head>
<body>
<h1>Hello World!</h1>
</body>
</html>
像这样..我该怎么做?
无法通过java.net.URL自动执行JavaScript。 带有嵌入式JavaScript的HTML文件将被视为任何其他纯文本文件,并且不会以任何方式进行解析。 没有构建DOM,没有执行JavaScript,没有应用CSS。 要执行JavaScript,您需要做的就是使用HtmlUnit之类的东西对其进行解析。
但是,如果您可以控制HTML,我建议您只用静态HTML替换document.write()
语句。 一个非常基本的选择当然是只对正则表达式document\\.write\\(([^\\)]+)\\);?
并将其替换为第一个捕获的匹配项。
https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/LiveConnect/JSObject
所提到的netscape.javascript.JSObject类中的eval方法可能正是您要寻找的(尽管我不确定它是否处理DOM操作以及是否可以在浏览器中使用)。
祝好运!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.