MediaWiki:Gadget-warnclosing.js
Giao diện
Chú ý: Sau khi lưu thay đổi trang, bạn phải xóa bộ nhớ đệm của trình duyệt để nhìn thấy các thay đổi. Google Chrome, Firefox, Internet Explorer và Safari: Giữ phím ⇧ Shift và nhấn nút Reload/Tải lại trên thanh công cụ của trình duyệt. Để biết chi tiết và hướng dẫn cho các trình duyệt khác, xem Trợ giúp:Xóa bộ nhớ đệm.
// **********************************************************************
// ** ***WARNING GLOBAL GADGET FILE*** **
// ** changes to this file affect many users. **
// ** please discuss on the talk page before editing **
// ** **
// **********************************************************************
// Imported from [[Thành viên:Mxn/warnclosing.js]], version as of: 2007-01-23T01:08
// Warn when closing an edited page
// Generalized version of hookEvent() in wikibits.js
var hookEvent = function (hookTarget, hookName, hookFunct) {
if (!hookTarget) return;
if (hookTarget.addEventListener) {
hookTarget.addEventListener(hookName, hookFunct, false);
}
else if (hookTarget.attachEvent) {
hookTarget.attachEvent("on" + hookName, hookFunct);
}
}
// Record original text and attach onsubmit event to the form
editFormSubmitting = false;
$(function () {
var editForm = document.getElementById("editform");
var editBox = document.getElementById("wpTextbox1");
if (!editForm || !editBox) return;
wpTextbox1_orig = editBox.value;
hookEvent(editForm, "submit", function () {
editFormSubmitting = true;
});
});
// Warn if text has changed or changes are being previewed
hookEvent(window, "beforeunload", function (e) {
e = (window.event) ? window.event : e;
var editBox = document.getElementById("wpTextbox1");
if (editFormSubmitting || !editBox || !wpTextbox1_orig) return;
var preview = document.getElementById("wikiPreview");
var previewNote = getElementsByClassName(preview, "div", "previewnote");
var isPreview = previewNote && previewNote.length > 0;
var textChanged = editBox.value != wpTextbox1_orig;
if (isPreview || textChanged) {
return e.returnValue = "Tất cả các sửa đổi sẽ bị hủy vì bạn chưa lưu trang.";
}
});