2
onbeforeunload
は、ユーザーが記入している形式のページに一貫して動作させようとしています。私は、次のことを期待している:RailsでonbeforeunloadがChromeブラウザで一貫して動作しない
- 私は別のページへのリンクをクリックすると、それは私がページを更新すると、それはユーザー
を促すユーザー
<script>
$(document).on('ready page:load', function() {
$(window).on('beforeunload', function() {
return "You should keep this page open.";
});
});
</script>
私はプロンプトが表示されることがありましたが、一貫して表示されませんでした。私はこれが上記のコードとの矛盾と、turbolinks
を指摘するかもしれないと考えました。しかし、上記の期待される結果を得るための修正を見つけることができませんでした。
---更新:
最終的に使用したコードは次のとおりです。
<script data-turbolinks-eval="false">
$(document).ready(function() {
form_modified=0;
$('#report-form *').change(function(){
form_modified=1;
});
$("#report-form input[name='commit']").click(function() {
form_modified = 0;
});
});
$(document).on('page:before-change', function() {
if ($("#report-form").length > 0) {
if (form_modified==1) {
if (confirm("There are unsaved changes, click \"Cancel\" to remain on the page.")) {
// clicks "OK", nothing here means
} else {
// clicks "Cancel"
event.preventDefault();
}
}
}
});
</script>
この方法は、ページの更新のために働くか、しかしウィンドウで「X」が出て出ていません...