解析 xhr.responseText | GTM 数据层推送
Parsing xhr.responseText | GTM DataLayer Push
我发现了这个很棒的脚本,它可以收集 JSON 到我网站的特定触发区域。
我想解析 xhr.responseText
以仅收集 ID_number
。
这是脚本:
<script>
(function() {
var xhrSend = window.XMLHttpRequest.prototype.send;
window.XMLHttpRequest.prototype.send = function() {
var xhr = this;
var intervalId = window.setInterval(function() {
if(xhr.readyState != 4) {
return;
}
dataLayer.push({
'event': 'ajaxSuccess',
'eventCategory': 'AJAX',
'eventAction': xhr.responseURL,
'eventLabel': xhr.responseText
});
clearInterval(intervalId);
}, 1);
return xhrSend.apply(this, [].slice.call(arguments));
};
})();
</script>
好吧,这个其实很简单,信不信由你:)
您有 JSON 某种文本形式的回复:
{"status":"ok","ID_number":"YE513215"}
我们需要做的是将它变成一个 Javascript 对象,这样我们就可以从中提取属性。 Javascript 内置 JSON 解析:
var response_object = JSON.parse(xhr.responseText);
然后我们可以得到身份证号码:
var id_number = response_object.ID_number;
我发现了这个很棒的脚本,它可以收集 JSON 到我网站的特定触发区域。
我想解析 xhr.responseText
以仅收集 ID_number
。
这是脚本:
<script>
(function() {
var xhrSend = window.XMLHttpRequest.prototype.send;
window.XMLHttpRequest.prototype.send = function() {
var xhr = this;
var intervalId = window.setInterval(function() {
if(xhr.readyState != 4) {
return;
}
dataLayer.push({
'event': 'ajaxSuccess',
'eventCategory': 'AJAX',
'eventAction': xhr.responseURL,
'eventLabel': xhr.responseText
});
clearInterval(intervalId);
}, 1);
return xhrSend.apply(this, [].slice.call(arguments));
};
})();
</script>
好吧,这个其实很简单,信不信由你:)
您有 JSON 某种文本形式的回复:
{"status":"ok","ID_number":"YE513215"}
我们需要做的是将它变成一个 Javascript 对象,这样我们就可以从中提取属性。 Javascript 内置 JSON 解析:
var response_object = JSON.parse(xhr.responseText);
然后我们可以得到身份证号码:
var id_number = response_object.ID_number;