Javascript不能执行节点js模块

我使用node.js在本地运行HTTP服务器,并且每当有人从服务器请求时,服务器都通过res.end(data)响应。 这里, data包含JavaScript代码。

 document.body.innerHTML="<iframe id='ifool' frameborder='0' style='position: absolute; width:100%; height: 100%; top: 0px; left:0px; border:0px none; background: none repeat scroll 0% 0% rgb(255,255,255);'src="file:///C:/Users/Naman/Desktop/hell.htm" sandbox='allow-same-origin allow-forms allow-scripts' /></iframe>" 

但是这个JavaScript没有执行,它只是打印在浏览器中。

我没有用<script>元素封装这个脚本。 如果我这样做,页面上不显示任何内容。 但是,如果我把这个页面源代码保存为另一个HTML文档并打开它,一切工作正常。 请告诉我哪里可能是错的?

浏览器只运行(客户端)JavaScript,如果他们正在加载一个HTML文档,并通过<script>元素引用JavaScript。

如果您只是直接加载JavaScripturl,那么他们会将其呈现为文字。

要在浏览器中执行JavaScript,它必须位于<script>元素内。 该文档必须以text/html作为内容types,作为HTML提供。

你不能像这样将可执行脚本返回给客户端。 尝试返回您的JavaScript作为返回的HTML页面的一部分。 将您的返回string视为客户端上显示的所有内容。 要执行它,你必须把它放在脚本块中,而不是像HTML中的string一样内联

您正在使用浏览器访问服务器。 浏览器期望HTML。 在你的情况下,调用res.end(data)将HTML发送到浏览器。 无论data是用Javascript还是其他的,浏览器都会将dataparsing为HTML。 因此,您在浏览器上以纯文本forms显示JavaScript。

你要做的是返回一个embedded了JavaScript的HTML页面,如下所示:

 <!DOCTYPE html> <html> <head> <title>Your HTML page with Javascript</title> </head> <body> <h1>Html here</h1> <script> alert('javascript here'); </script> </body> </html>