#javascript #function #server
#javascript #функция #сервер
Вопрос:
У нас есть некоторый код отслеживания javascript веб-сайта, похожий на Google Analytics.
Мы написали очень большую функцию для выполнения дополнительного отслеживания, но мы не хотим размещать этот код на веб-сайтах.
Мы хотим сохранить ее на нашем сервере, чтобы мы могли вносить глобальные изменения.
Если код находится в файле c:productionfunctionsforms.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. Не могли бы вы предоставить информацию о том, что вы пробовали до сих пор, и задать более конкретный вопрос?
2. Вы имеете в виду, что хотите выполнить этот код в браузере? Или вы хотите, чтобы веб-клиенты удаленно вызывали этот код для запуска на сервере? Я бы поставил на первое, но это не очень понятно.
3. Вы говорите о выполнении или управлении версиями?
4. Я хочу вызвать функцию из веб-браузера при загрузке веб-страницы
Ответ №1:
В прошлом проекте. Мы предоставляем этот ресурс с помощью микросервиса.
Я думаю, что это может быть решением. Предоставьте метод с помощью микросервиса.
Полный пример. 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>