我们有一些网站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服务器上
答案 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>