gpt4 book ai didi

javascript - 使用nodejs网络服务器在动态创建的html页面中执行javascript文件

转载 作者:太空宇宙 更新时间:2023-11-04 01:03:46 25 4
gpt4 key购买 nike

我想使用node.js网络服务器在动态创建的html页面的 header 中执行javascript文件。不知道如何实现,但一定是可能的。

var http = require('http');
var url = require('url');

function processRequest(request, response) {
"use strict";

var pathname = url.parse(request.url).pathname;
console.log('Requested ' + pathname);

response.writeHead(1000, { 'Content-Type': 'text/html' });
response.write('<!DOCTYPE html><html ><head>');
response.write('<meta charset="utf-8">');
response.write('<title>' + 'Yay Node!' + '</title>');
response.write('<link rel=stylesheet href=../styles/styles.css rel=stylesheet />');
response.write('<script src=script.js type=text/javascript></script>');
response.write('</head><body>');

response.write('<h1><tt>' + 'jan' + '</tt></h1>');
response.write('<script type="text/javascript">test()</script>')
//response.write('<script type="text/javascript">script.onload = function () { alert("from html Node!")}; </script>')
response.write('<input id="clickMe" type="button" value="clickme" onclick="test()" />')
response.write('</body></html>');
response.end();
};

http.createServer(processRequest).listen(8888);

脚本.js:

document.onload = function () { alert('load Node!'); };
test = function() { alert('test Node!') };

最佳答案

问题是,您的浏览器找不到script.js

当它尝试使用与 http://localhost:8888/相同的 html 文件获取 http://localhost:8888/script.js Node 答案时.

为了让 Node 正确地提供脚本文件,您需要检查路径并发送正确的文件。

将类似的内容添加到您的processRequest函数中

if (pathname === '/script.js') {
//code to send script
} else {
//code to send html
}

您也必须对 styles.css 文件执行相同的操作

如果您不想对页面中的每个文件进行硬编码,我建议使用 npm 模块 express

var express = require('express'),
app = express(),
server = require('http').createServer(app);

app.use('/', express.static(__dirname + '/static');

server.listen(8888);

当浏览器请求时,此代码将自动发送 /static 中的文件。如果你想创建一个动态页面,你可以在 app.useserver.listen

之间添加它
app.all('/somedynamicurl', function (request, response) {
//Dynamic page
});

现在,如果有人访问http://localhost:8888/somedynamicurl,他们将获得这个动态页面。

我还建议阅读 express guideexpress docs

关于javascript - 使用nodejs网络服务器在动态创建的html页面中执行javascript文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24940459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com