Javascript Piwik跟踪脚本可在除IE8及以下浏览器之外的所有浏览器上运行
我有一个电子商务网站收据页跟踪脚本。该脚本只是从DOM中获取产品信息,并使用Piwik电子商务跟踪功能对其进行跟踪。这在除Internet Explorer 8及以下版本之外的所有浏览器中都可以正常工作。几周来我一直在想剧本到底出了什么问题。我已经在一个虚拟的收据页面上对它进行了本地测试,它在IE中运行良好,但它没有在live页面上跟踪IE 5-8的任何销售情况 跟踪脚本是通过OpenTag标签插入到收据页面的,piwik.js也是如此,但我使用的是异步跟踪器,所以这不应该是一个问题,除IE之外的所有浏览器都确认了这一点 以下是通过OpenTag注入的代码:Javascript Piwik跟踪脚本可在除IE8及以下浏览器之外的所有浏览器上运行,javascript,matomo,Javascript,Matomo,我有一个电子商务网站收据页跟踪脚本。该脚本只是从DOM中获取产品信息,并使用Piwik电子商务跟踪功能对其进行跟踪。这在除Internet Explorer 8及以下版本之外的所有浏览器中都可以正常工作。几周来我一直在想剧本到底出了什么问题。我已经在一个虚拟的收据页面上对它进行了本地测试,它在IE中运行良好,但它没有在live页面上跟踪IE 5-8的任何销售情况 跟踪脚本是通过OpenTag标签插入到收据页面的,piwik.js也是如此,但我使用的是异步跟踪器,所以这不应该是一个问题,除IE之外
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script type="text/javascript">
// Closure that supports jQuery
(function($) {
// Function for removing everything from a string except numbers and
// returning that number as an integer
var num = function(text) {
return parseInt(text.replace(/[^0-9]/g, ''));
};
// Trims whitespace from before and after a string. " hello " => "hello"
var trim = function(text) {
return text.replace(/^\s+|\s+$/g, '');
};
// Run on document ready
$(function() {
// Ready a reference to Piwik async queue
_paq = _paq || [];
// Referansenummeret
var order_id = num(
$('span#ctl00_CPHCnt_McInPlaceEdYourRefNbr_McInPlaceEdYourRefNbr')
.closest('p').text()
);
// Hent verdien som ligger etter "Total:"
// var total = num(
// $('span#ctl00_CPHCnt_HandlevognProdukListe1_McInPlaceEdTotInclAVT2_McInPlaceEdTotInclAVT2')
// .closest('tr').children('td:last-child').text()
// );
var total = 0;
// Hent verdien som ligger etter "Sum:"
var sub_total = num(
$('span#ctl00_CPHCnt_HandlevognProdukListe1_McInPlaceEditorSum_McInPlaceEditorSum')
.closest('tr').children('td:last-child').text()
);
// Hent verdien som ligger etter "Herav mva:"
var mva = num(
$('table.CartSummaryTable .TotalValue').closest('tr').next()
.children('td:last-child').text()
);
// Hent verdien som ligger etter "Frakt inkl. evt. gebyr:"
var shipping = num(
$('span#ctl00_CPHCnt_HandlevognProdukListe1_McInPlaceEdFreightInclFee_McInPlaceEdFreightInclFee')
.closest('tr').children('td:last-child').text()
);
// Cheat solution - the total doesn't have a 100% hitrate so just
// add the sub_total and shipping together.
total = sub_total + shipping;
// Iterate over the product rows and extract the information
$('table#ProductList tr.VerticalText').each(function(index, row) {
var sku = trim($('td:first-child', row).text());
var prod_name = trim($('div.ProduktDesc span', row).text());
var categories = [];
var price = num($('td:nth-child(5)', row).text());
var quant = num($('td:nth-child(4)', row).text());
// Extrapolate categories from the product link URL
var path = $('.ProduktDesc a', row).attr('href').split('/');
for(var i = 2; i < path.length - 1; i++)
{
categories.push(path[i]);
}
// Track this product
_paq.push(['addEcommerceItem', sku, prod_name, categories, price, quant]);
});
// Track this order
_paq.push(['trackEcommerceOrder', order_id, total, sub_total, mva, shipping, false]);
});
}(window.jQuery.noConflict(true)));
</script>
//支持jQuery的闭包
(函数($){
//函数,用于删除字符串中除数字和
//以整数形式返回该数字
var num=函数(文本){
返回parseInt(text.replace(/[^0-9]/g',);
};
//修剪字符串前后的空白。“hello”=>“hello”
var trim=函数(文本){
返回文本。替换(/^\s+|\s+$/g,');
};
//在文档准备就绪时运行
$(函数(){
//准备好对Piwik异步队列的引用
_paq=|paq | |[];
//引荐信
变量顺序_id=num(
$('span#ctl00_CPHCnt_mcinplaced yourrefnbr_mcinplaced yourrefnbr')
.最近的('p')。文本()
);
//Hent verdien som ligger etter“总计:
//变量总数=num(
//$('span#ctl00_CPHCnt_handlevongnprodukList1_mcinplacedtotinclavt2_mcinplacedtotinclavt2')
//.closest('tr')。children('td:最后一个child')。text()
// );
var合计=0;
//Hent verdien som ligger etter“金额:
var sub_total=num(
$('span#ctl00_CPHCnt_handlevongnproduklist1_McInPlaceEditorSum_McInPlaceEditorSum')
.closest('tr')。children('td:最后一个child')。text()
);
//Hent verdien som ligger etter“Herav mva:”
var mva=num(
$('table.CartSummaryTable.TotalValue').closest('tr').next()
.children('td:last child')。text()
);
//Hent verdien som ligger etter“Frakt inkl.evt.gebyr:”
var shipping=num(
$('span#ctl00_CPHCnt_HandleVongnProdukList1_McInPlacedFreightInclfee_McInPlacedFreightInclfee')
.closest('tr')。children('td:最后一个child')。text()
);
//作弊解决方案-总命中率不是100%,所以
//将小计和装运加在一起。
总计=小计+装运;
//迭代产品行并提取信息
$('table#ProductList tr.VerticalText')。每个(函数(索引,行){
var sku=trim($('td:first child',row.text());
var prod_name=trim($('div.ProduktDesc span',row.text());
var类别=[];
var price=num($('td:nth child(5)”,第行).text();
var quant=num($('td:nth child(4)”,第行).text();
//从产品链接URL推断类别
var path=$('.ProduktDesc a',row.attr('href').split('/');
对于(变量i=2;i
询问StackOverflow是我的最后手段,我一辈子都搞不懂为什么它没有跟踪InternetExplorer5-8的销售情况
我会接受让我解决这个问题的第一个答案。我们找到了答案。原来OpenTag只是在Internet Explorer中将URL“//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js”转换为“////ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js”。我们通过使用JavaScript来解决这个问题