在远程nodejs应用中访问窗口对象
Accessing window object in remote nodejs app
嗨,我想在我的nodejs应用程序中访问远程包含的客户端JS代码。很像谷歌分析。
<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,我想得到someID。
如果我不把它指向我的node应用程序,而是指向一个静态JS文件,这很好,但我想把它和其他变量直接消费到nodejs中。
谢谢
你混淆了客户端和服务器端。
你引用的Google分析代码所有都发生在客户端。(它会在它们的末端触发某种服务器端代码,但这无关紧要。)
你的NodeJS代码是服务器端。你不能让服务器代码直接调用客户端代码,访问它的变量,等等;反过来也不行。您必须发送信息到服务器(通过在url中加载带有标识符的资源,通过ajax,使用web套接字等)并发送信息到客户端(通过响应ajax和其他请求,发送web套接字消息等)。
例如,你可以做一些几乎完全像谷歌分析所做的事情:
(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
参数,并使用它做一些事情。(这就是谷歌分析所做的,但比上述更间接。)
相关文章:
- 如何访问UIWebView'的子窗口上下文
- 如何在事件函数中访问窗口实例
- 从另一个窗口访问document.getElementById
- HackReactor,编码窗口现在可以访问一个名为“”的对象;招生;使用名为“;showApp”;.调用此方法时不带任
- 访问所选记录的网格值并使用 javascript 传递到新窗口
- 如何在Chrome扩展程序开发中访问弹出窗口的cookie
- 如何从Chrome扩展访问所有窗口对象
- 为什么我的firefox扩展javascript不能访问opener窗口,也看不到window.name
- 正在访问窗口.Javascript 中的应用程序函数
- 扩展can't访问窗口对象中的自定义函数
- Jquery访问窗口的data().来自iframe的父元素
- 工人、网络或服务;访问窗口对象
- 可以't访问窗口/全局变量–似乎不是't定义
- jquery访问窗口的奇怪bug
- 如何从文档对象访问窗口对象
- 通过窗口名称访问窗口
- 访问窗口对象中的函数
- 访问窗口.覆盖后的控制台
- 在远程nodejs应用中访问窗口对象
- 如何从弹出窗口访问窗口变量