Chrome下MediaWiki WikiEditor快捷键添加内部链接的Userscript需求
解决Chrome下MediaWiki WikiEditor内部链接快捷键问题
方法一:直接用快捷键给选中内容包裹[[ ]]
通过Tampermonkey油猴脚本实现,绑定自定义快捷键后,选中文本按下快捷键就能自动套上MediaWiki内部链接格式:
- 安装Chrome的Tampermonkey扩展
- 新建用户脚本,粘贴以下代码:
// ==UserScript== // @name WikiEditor Internal Link Shortcut // @namespace http://tampermonkey.net/ // @version 0.1 // @description Add shortcut to wrap selected text in [[ ]] for MediaWiki WikiEditor // @match *://你的维基域名/* // 替换成你实际的维基站点域名,比如 *://en.wikipedia.org/* // @grant none // ==/UserScript== (function() { 'use strict'; document.addEventListener('keydown', function(e) { // 绑定Ctrl+Shift+L作为快捷键,可自行修改 if (e.ctrlKey && e.shiftKey && e.key === 'L') { e.preventDefault(); const selection = window.getSelection().toString().trim(); if (!selection) return; // 获取编辑器实例(适配WikiEditor的textarea或可视化编辑器) const editor = document.querySelector('#wpTextbox1') || document.querySelector('.oo-ui-textInputWidget-input'); if (!editor) return; // 处理选中内容替换 if (editor.tagName === 'TEXTAREA') { const start = editor.selectionStart; const end = editor.selectionEnd; const text = editor.value; editor.value = text.substring(0, start) + '[[' + selection + ']]' + text.substring(end); // 光标定位到链接末尾 editor.selectionStart = editor.selectionEnd = start + 2 + selection.length; } else { // 可视化编辑器模式下替换选中内容 const range = window.getSelection().getRangeAt(0); range.deleteContents(); const linkText = document.createTextNode('[[' + selection + ']]'); range.insertNode(linkText); } } }); })();
- 修改脚本里的
@match规则,替换成你常用的维基站点域名 - 保存脚本后,在WikiEditor里选中文本,按下
Ctrl+Shift+L就能自动生成[[选中内容]]格式的内部链接
方法二:用快捷键触发插入链接按钮
同样通过Tampermonkey脚本,绑定快捷键点击你指定的插入链接按钮:
- 安装Tampermonkey扩展后新建脚本,粘贴以下代码:
// ==UserScript== // @name WikiEditor Link Button Shortcut // @namespace http://tampermonkey.net/ // @version 0.1 // @description Add shortcut to trigger WikiEditor's insert link button // @match *://你的维基域名/* // 替换成实际域名 // @grant none // ==/UserScript== (function() { 'use strict'; document.addEventListener('keydown', function(e) { // 绑定Ctrl+Shift+K作为快捷键,可自行修改 if (e.ctrlKey && e.shiftKey && e.key === 'K') { e.preventDefault(); // 找到目标span对应的按钮(span是按钮的子元素,所以取父元素) const linkIcon = document.querySelector('.oo-ui-iconElement-icon.oo-ui-icon-wikiText'); const linkButton = linkIcon?.closest('.oo-ui-buttonElement-button'); if (linkButton) { linkButton.click(); } } }); })();
- 修改
@match规则为你的维基站点域名 - 保存后,在WikiEditor里按下
Ctrl+Shift+K就能直接触发插入链接的弹窗/面板
注意事项
- 快捷键可自行修改脚本里的按键组合,比如把
e.key === 'L'改成其他字母 - 如果你的WikiEditor是可视化模式(而非纯文本),方法一的可视化编辑器部分可能需要根据站点实际情况微调
内容的提问来源于stack exchange,提问作者greektranslator
相关产品推荐
相关产品推荐

