繁体   English   中英

如何在服务器端渲染JavaScript

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM