作为新产品指标的一部分,我们需要衡量页面上的后退按钮点击次数。
由于该站点不是AJAX而且我们在“pushState”中没有使用,因此在浏览器中单击时不会触发“popState”。
捕获后退按钮事件的唯一目的是注册分析事件。
用谷歌搜索了几个小时,然后尝试了几种不同的解决方案,我出现了空洞 - 奇怪的是,javascript似乎没有配备这样的任务。
话虽如此,这不是一个有效的回答:)你会如何处理这样的要求?
请注意 - 获得赏金的答案并未解决我的问题,但由于努力,我已经给予了赏金。在这种情况下,这是最好的答案
答案 0 :(得分:2)
您可以捕获window.onbeforeunload()
并使用Cookie来存储每个后退按钮点击的后退按钮点击次数,您可以更新Cookie。试试吧。
使用您可以实现的popstate和cookies 我使用了一个名为cookie
的插件并将它们导入您的页面。
这是导入。
<script src="/jqueries/jquery.cookie.js"></script>
这是我使用的代码。
$(window).on('popstate', function () {
var val = 1;
if (typeof $.cookie('example') === 'undefined') {
//no cookie
} else {
//have cookie
val = parseInt($.cookie("example")) + 1;
$.removeCookie("example");
}
$.cookie("example", val, { expires: 7 });
//alert($.cookie("example"));
});
它的juzz是一个粗略的代码你可以根据自己的需要创建它会创建pushstate
将其添加到脚本中..
HTML中只有DEMO内容
<input type="text" id="t1" />
<input type="text" id="t2" />
<input type="text" id="t3" />
<input type="text" id="t4" />
<input type="text" id="t5" />
这些是没有AJAXify的HTML5 pushstate脚本。试试这些......
$('#t1').click(function () {
if (window.history.replaceState) {
window.history.pushState('', 'Title', '/YourPagename/123/1234');
}
});
$('#t2').click(function () {
if (window.history.replaceState) {
window.history.pushState('', 'Title', '/YourPagename/123/12345');
}
});
$('#t3').click(function () {
if (window.history.replaceState) {
window.history.pushState('', 'Title', '/YourPagename/123/123456');
}
});
很快。为其他人声明这些
通过这种方式是可能的。
这部分是为了获取传递的url值,这里t1,t2将获得与url相关的值
var ourl = "", t1 = "", t2 = "";
if (window.history.replaceState) {
ourl = document.URL.toString();
var url = document.URL.toString().replace('http://', '');
var cnt = 0;
for (i = 0; i < url.length; i++) {
if (url[i] == '/') {
cnt++;
}
else if (cnt == 2) {
t1 += url[i];
}
else if (cnt == 3) {
t2 += url[i];
}
}
}
答案 1 :(得分:1)
我不确定是否有任何快捷方式,但如果没有别的办法,你可以尝试遵循逻辑。
如果您无法直接点击浏览器后退按钮,则可以衡量网站的总返回和返回点击次数。你可以减去它并获得你的价值。
使用此代码。
$('a').on('click', function(e) {
if ($(this).attr('href') != 'javascript:void(0)') { // condition to check if its redirect href
e.preventDefault();
localStorage.setItem('website_called', true);
location.href = $(this).attr('href');
}
});
window.onload(function() {
if ((document.referrer).indexOf('yoursite.com') != -1 && localStorage.setItem('website_called') == false) {
var backButtonUsed = localStorage.setItem('backButtonUsed');
backButtonUsed = backButtonUsed + 1;
localStorage.setItem('backButtonUsed', backButtonUsed);
}
localStorage.setItem('website_called', false);
});