UNPKG

fis-postprocessor-framework-trace

Version:
95 lines (55 loc) 2.55 kB
'use strict'; var fStr = (function () { document.body.addEventListener( 'click', function(e){ var traceElement = e.target, traceObject; while( !traceElement.getAttribute('data-trace') && traceElement.parentNode!==document.body ) { traceElement = traceElement.parentNode; } // 没有 [data-trace] 代理则返回 if ( traceElement===document.body) { return true; } // 计算traceObject traceObject = traceElement.getAttribute('data-trace'); traceObject = /\{/.test(traceObject) ? JSON.parse(traceObject) : { tid: +traceObject }; // 当前trace元素是a标签? if ( traceElement.tagName.toLowerCase()==='a' ) { var url = traceObject.tgtUrl = traceElement.getAttribute('href'); if ( ! /(?:^#)|(?:^tel\:)/i.test(url) ) { e.preventDefault(); } } // 发送打点 if ( require && require.has && require.has('libs/core.trace') ) { var coreTrace = require('libs/core.trace'); coreTrace.send( traceObject ); } return true; } ); }) .toString(); module.exports = function (content, file, conf) { if (file.isHtmlLike && file.isViews && file.useTrace!==false) { var content = file.getContent(); // </body>结束 --- 发送日志数据 content = content.replace(/(\<\s*\/\s*body\s*\>)/ig, function() { return '\n #[[<script> document.addEventListener( "DOMContentLoaded", ' + fStr + ' )</script>]]#\n' + RegExp.$1; }); return content; } }; /** module.exports = function (ret, conf, settings, opt) { fis.util.map(ret.src, function(subpath, file) { if (file.isHtmlLike && file.isViews && file.useTrace!==false) { var content = file.getContent(); // </body>结束 --- 发送日志数据 content = content.replace(/(\<\s*\/\s*body\s*\>)/ig, function() { return '\n #[[<script> document.addEventListener( "DOMContentLoaded", ' + fStr + ' )</script>]]#\n' + RegExp.$1; }); file.setContent(content); } }) }; **/