我使用以下前端代码导出jQuery(body).mouseleave(function(){}, function(e){
if (e.target == this) {
bioEp.showPopup();
console.log('leave');
} else {
console.log('false');
}
});
文档。
HTML
.csv
JS
<form id="tool-export" method="post" action="export/">{% csrf_token %}
<a id="export-link" class="btn btn-sm btn-primary" href="#">DOWNLOAD</a>
</form>
导出效果很好,我得到了正确的文档。但是,在点击导出链接后,我收到 您所做的更改可能无法保存 消息。如何禁用此消息?我不想看到它。
答案 0 :(得分:9)
@Dekel帮我搞定了。
消息是beforeunload事件。
我可以使用window.onbeforeunload = null;
禁用它。
<强> JS 强>
$('#export-link').click(function(e) {
window.onbeforeunload = null;
e.preventDefault();
var link = $(this);
var form = link.closest('form');
var project_id = proj_id.find(":selected").val();
var input = $('<input>').attr('type', 'hidden').attr('name', 'project_id').val(project_id);
form.append($(input));
var project_type = proj_type.val();
input = $('<input>').attr('type', 'hidden').attr('name', 'project_type').val(project_type);
form.append($(input));
form.submit();
});
答案 1 :(得分:2)
在jQuery中只需使用:
$(window).off('beforeunload');
答案 2 :(得分:1)
我在将Chrome浏览器嵌入Google-Form时遇到了相同的错误,
我可以验证找到的解决方案对我没有帮助。这是我的弹出窗口的屏幕截图:
我设法实现的唯一解决方案是隐藏元素,然后使用当前嵌入内容取消隐藏/创建新的iframe
。这是我的代码的一部分:
if (oldvalue !== value) { // checks the id of the form (value) is not the same
// set value of the id
$('#info').text(value);
// check the element exists
let exists = value;
if($("#" + value).length == 0) {
//it doesn't exist
exists = false;
}
// hide all child elements of the div for forms
parent.children().hide();
// create new node if needed
if (!exists)
{
// create new form element and embed the form
$("#google-form").clone().attr("id",value).attr('src', record.url).appendTo(parent);
}
// unhide error element
$("#" + value).show();
}
我的解决方案的完整代码为here。