User:Irukaza/js/editConflict.js
跳到导航
跳到搜索
注意:这类代码页面在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。
- 按住
CTRL+SHIFT+DEL 或 ⌘-Shift-R
来清除缓存! - 或尝试在地址栏的地址最后添加代码
?_=1
来访问最新页面。 - 你还可以在设置中勾选小工具在页面右上角添加清除缓存按钮!
(async () => {
await mw.loader.using("mw.Api");
let needCheckFlag = true;
const api = new mw.Api({ timeout: 1 });
const wpSave = $("#wpSave");
const editform = $("#editform");
const SYMBOL_UNDEFINED = Symbol("SYMBOL_UNDEFINED");
wpSave.val = (value = SYMBOL_UNDEFINED) => {
const val = $.fn.val.bind(wpSave);
return value === SYMBOL_UNDEFINED ? val() : val(value).attr("title", value);
};
const disable = ($buttons) => {
return $buttons.css("font-weight", "normal").parent().removeClass("oo-ui-widget-enabled oo-ui-flaggedElement-primary oo-ui-flaggedElement-progressive").addClass("oo-ui-widget-disabled");
}
wpSave.on("click", () => {
if (needCheckFlag === true) {
needCheckFlag = false;
setTimeout(async () => {
disable(wpSave.attr("disabled", "disabled").val("正在保存......"));
for (let i = 1; i <= 4; i++) {
try {
const result = await api.post({
action: "query",
prop: "revisions",
rvprop: "ids",
rvlimit: 1,
titles: wgPageName,
});
const pageid = Object.keys(result.query.pages)[0];
wpSave.val("正在保存......");
editform.submit();
} catch (e) {
console.error("editConflict", e);
wpSave.val(i <= 3 ? `保存失败,请检查您的网络!` : "保存失败,请检查您的网络!");
return;
}
}
}, 1);
}
return false;
});
})();