Вызовите функцию Javascript на удаленном сервере. - PullRequest
0 голосов
/ 27 марта 2019

У нас есть некоторый код отслеживания JavaScript на сайте, похожий на Google Analytics.

Мы написали очень большую функцию для дополнительного отслеживания, но мы не хотим размещать этот код на веб-сайтах.
Мы хотим сохранить его на нашем сервере, чтобы мы могли вносить глобальные изменения,

Если код находится в файле c:\production\functions\forms.js,

Как мне вызвать его из кода на сайте ??

Код находится в теге заголовкавеб-сайт, созданный на основе аналитики MATOMO. Я бы хотел добавить строку кода, чтобы вызвать функцию, когда веб-страница загружает

пример кода ниже и куда я хотел бы вызвать функцию *.1013 *

    <!-- 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 голосов
/ 27 марта 2019

В прошлом проекте.Мы выставляем этот ресурс через микросервис.

Я думаю, что это может быть решением.Раскрыть метод с помощью микро-службы.

Полный пример.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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...