在远程服务器上调用Javascript函数

时间:2019-03-27 18:20:58

标签: javascript function server

我们有一些网站javascript跟踪代码,类似于Google Analytics(分析)。

我们编写了一个非常大的功能来执行额外的跟踪,但是我们不想将此代码放到网站上。
我们希望将其存储在服务器上,以便进行全局更改。

如果代码在文件c:\production\functions\forms.js中,

如何从网站上的代码中调用它?

该代码位于MATOMO Analytics的网站标题中 我想在此时插入一行代码以在网页加载时调用该函数

下面的示例代码以及我想在哪里调用该函数

    <!-- Matomo -->
    <script type="text/javascript">
      var _paq = window._paq || [];

   *** CALL FUNCTION HERE ***


      _paq.push(['trackPageView']);
      _paq.push(['enableLinkTracking']);
      (function() {
        var u="https://matomo.cloud/";
        _paq.push(['setTrackerUrl', u+'matomo.php']);
        _paq.push(['setSiteId', '62']);
        var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
        g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
      })();
    </script>
    <!-- End Matomo Code -->

文件存储在Azure服务器上

1 个答案:

答案 0 :(得分:0)

在过去的项目中。我们通过微服务公开此资源。

我认为这可能是解决方案。通过微服务公开该方法。

完整示例。 https://stackblitz.com/edit/js-zqmuwu-example-traking?file=index.js

这将是您的微服务,该微服务将使用您的方法加载文件,并通过一个对象传递您的方法需要工作的数据。

const app = require('express')();
const forms = require('./forms.js');

app.get('/traking', (req, res) => {
  forms(req.query);
  return res.status(201).send('ok');
});

app.listen(3000);

稍后,您可以加载提取内容以执行方法。

示例。

function traking(params = {}) {
  var url = new URL("https://geo.example.org/api");

  Object.keys(params).forEach(key => url.searchParams.append(key, params[key]));

  fetch(url);
}

用于按钮或链接。

<button onclick="traking({a:3})">Click</button>