gpt4 book ai didi

javascript - 访问远程nodejs应用程序中的窗口对象

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

您好,我想访问远程包含的 Nodejs 应用程序中的客户端 JS 代码。很像 Google Analytics 所做的。

<script type="text/javascript">
var someID = 123456;
(function() {
var zx = document.createElement('script'); zx.type = 'text/javascript'; zx.async = true;
zx.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'example.com/';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(zx, s);
})();
</script>

在上面的场景中,包含的脚本是nodejs,我想获取一些ID。

如果我不是将其指向我的 Node 应用程序,而是指向静态 JS 文件,那没问题,但我想将它和其他变量直接使用到 Nodejs 中。

谢谢

最佳答案

您混淆了客户端和服务器端的事物。

您引用的 Google 分析代码全部发生在客户端。 (它在结束时触发某种类型的服务器端代码,但这并不相关。)

您的 NodeJS 代码是服务器端。您不能让服务器代码直接调用客户端代码、访问其变量等;反之亦然。您必须向服务器发送信息(通过加载 URL 中带有标识符的资源、通过 ajax 、使用 web sockets 等)并将信息发送到客户端(通过响应 ajax 和其他请求、发送 Web 套接字消息等)。

例如,您可以做一些几乎与 Google Analytics 所做的事情完全相同的事情:

(function() {
var someVariabletoPassToTheServer = "foo";
var s = document.createElement('script');
s.src = "//example.com/your/script?data=" + encodeURIComponent(someVariabletoPassToTheServer);
document.getElementsByTagName('script')[0].parentNode.appendChild(s);
})();

然后,您的 NodeJS 代码可以处理对 example.com 服务器上的 /your/script 的请求,接收 data GET 参数,并用它执行某些操作。 (这就是 Google Analytics 所做的,但比上面的更间接。)

关于javascript - 访问远程nodejs应用程序中的窗口对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15141223/

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