我添加了这段代码以防止特定页面上的浏览器后退按钮
$( document ).ready(function() {
(function ($, global) {
var _hash = "!",
noBackPlease = function () {
global.location.href += "#";
setTimeout(function () {
global.location.href += "!";
}, 50);
};
global.setInterval(function () {
if (global.location.hash != _hash) {
global.location.hash = _hash;
}
}, 100);
global.onload = function () {
noBackPlease();
// disables backspace on page except on input fields and textarea..
$(document.body).keydown(function (e) {
var elm = e.target.nodeName.toLowerCase();
if (e.which == 8 && elm !== 'input' && elm !== 'textarea') {
e.preventDefault();
}
// stopping event bubbling up the DOM tree..
e.stopPropagation();
});
}
})(jQuery, window);
});
使用上面的代码,后退按钮功能正常。
但我面临的问题是,当我点击提交按钮时,弹出窗口会立即隐藏
但是当我删除上面的代码时,一切都运行良好
你可以告诉我如何解决这个问题吗?这是我的小提琴
答案 0 :(得分:1)
首先,此检查始终不会相等
ParseRelation<Recipe> rel = ParseUser.getCurrentUser().getRelation("likedRecipes");
ParseQuery<Recipe> q = rel.getQuery();
q.findInBackground(...); // <- here you get all liked recipes. This can be used for the whole list.
if (global.location.hash != _hash) {
始终会返回hash
而#!
将会_hash
。所以当你的backbutton代码中存在错误时,它的代码并没有真正起作用。
当对话框打开时,它会设置哈希,以便更改广告,后面的按钮代码将会将其删除。
所以改变!
和
var _hash = "#!",
答案 1 :(得分:0)
正如您所看到的,弹出窗口会更改link,并且您的间隔会看到它已更改并返回到没有弹出窗口的原始状态(链接)。
在jQuery popup docs上,我看到您可以将历史记录设置为false:
{ history: false }