مدیاویکی:Gadget-EditHelper.js
نکته: برای دیدن تغییرات، ممکن است نیاز باشد که حافظهٔ نهانی مرورگر خود را پس از انتشار پاکسازی کنید. گوگل کروم، فایرفاکس، مایکروسافت اج و سافاری: کلید ⇧ Shift را نگه دارید و روی دکمهٔ Reload در نوار ابزار مرورگر کلیک کنید. برای آگاهی از جزئیات و نحوهٔ پاکسازی حافظهٔ نهانی سایر مرورگرها، صفحهٔ ویکیپدیا:میانگیر مرورگرتان را خالی کنید را ببینید.
var errors = [
{ regex: /\/\/[^\s\n\|\}\]<\/]*?\/?([\s\n\|\}\]<]|$)/, message: "لطفاً از پیوند صفحهٔ اصلی یک سایت استفاده نکنید" },
{ regex: /ghatreh\.com/, message: "لطفاً از وبگاه قطره استفاده نکنید" }
];
function checkAndRaiseErrors(oldtext, text) {
console.log(oldtext, text);
var regex, hasError = false, i;
for (i = 0; i < errors.length; i = i + 1) {
regex = errors[i].regex;
if (!regex.test(oldtext) && regex.test(text)) {
mw.notify($.parseHTML("اشکال در: " + text.match(regex)[0] + "<br><br>" + errors[i].message), { autoHide: false });
hasError = true;
}
}
return hasError;
}
function loadPage(title, callback) {
new mw.Api().get({
action: 'query',
prop: 'revisions',
titles: title,
rvprop: 'content',
format: 'json'
}).done(function (data) {
callback($.map(data.query.pages, function (value) { return value; })[0].revisions[0]['*']);
});
}
var isOnceClicked = false;
$(function () {
if (mw.config.get('wgAction') !== "edit" && mw.config.get('wgAction') !== "submit") { return; }
loadPage(mw.config.get('wgPageName'), function (oldtext) {
var wpSave = $('#wpSave');
wpSave.click(function (e) {
if (!isOnceClicked && checkAndRaiseErrors(oldtext, $('#wpTextbox1').val())) {
e.preventDefault();
onceClicked = true;
}
});
});
});