gpt4 book ai didi

node.js - 动态注入(inject)脚本标签pre

转载 作者:搜寻专家 更新时间:2023-10-31 23:54:56 25 4
gpt4 key购买 nike

在请求结束时,我想利用 text/html 的结果结束注入(inject) </body>标签。理想情况下,这将尽可能低地接入 - 即 HTTP 模块或最坏的连接。

我正在尝试创建一个将用于调试的程序包,当启用调试时,我希望注入(inject)脚本。尽可能低地使用它意味着我正在处理的包尽可能兼容。

最佳答案

一种方法可能是猴子补丁 ServerResponse.end 像这样:

var http = require('http');

var oldEnd = http.ServerResponse.prototype.end,
RE_CONTYPE_HTML = /Content-Type: text\/html/i;
http.ServerResponse.prototype.end = function(data, encoding) {
if (RE_CONTYPE_HTML.test(this._header)) {
if (data)
this.write(data, encoding);
this.write('<script>window.onload = function(){ alert("Hello World!"); };</script>', 'ascii');
oldEnd.call(this);
} else
oldEnd.call(this, data, encoding);
};

http.createServer(function(req, res) {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end('<h1>Greetings from node.js!</h1>');
}).listen(8000);

关于node.js - 动态注入(inject)脚本标签pre </body>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23183678/

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