MediaWiki:Gadget-warnclosing.js

Bách khoa toàn thư mở Wikipedia

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 ExplorerSafari: 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.";
    }
});