0

こんにちは私はリモートで含まれている私のnodejsアプリ内のクライアント側JSコードにアクセスしたいと思います。Googleアナリティクスとよく似ています。

<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を取得したいと思います。

ノードアプリではなく静的JSファイルを指定すれば問題ありませんが、それと他の変数を直接nodejsに使用したいと思います。

ありがとう

4

1 に答える 1

4

あなたは物事のクライアント側とサーバー側を混乱させています。

引用したGoogleアナリティクスコードはすべてクライアント側で発生します。(最後にある種のサーバー側コードをトリガーしますが、それは関係ありません。)

NodeJSコードはサーバー側です。サーバーコードでクライアントコードを直接呼び出したり、その変数にアクセスしたりすることはできません。また、その逆もできません。サーバーに情報を送信し(URLに識別子を含むリソースをロードするか、ajaxを介して、 Webソケットを使用するなど)、クライアントに情報を送信する必要があります(ajaxやその他の要求に応答する、Webソケットメッセージを送信するなど)。 。)。

したがって、たとえば、Googleアナリティクスとほぼ同じように実行できます。

(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コードはサーバー/your/script上でのリクエストを処理し、パラメーターexample.comを受け取り、data GETそれを使って何かを行うことができます。(これはGoogleアナリティクスが行うことですが、上記よりもやや間接的です。)

于 2013-02-28T16:59:10.547 に答える