fis-postprocessor-framework-trace
Version:
95 lines (55 loc) • 2.55 kB
JavaScript
;
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);
}
})
};
**/