您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
preview image for link that start with "File:"
- // ==UserScript==
- // @name Wiki file link preview
- // @namespace https://unlucky.ninja/
- // @version 0.1
- // @description preview image for link that start with "File:"
- // @author UnluckyNinja
- // @match https://*.wikipedia.org/*
- // @require https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.min.js
- // @require https://greasyfork.org/scripts/2199-waitforkeyelements/code/waitForKeyElements.js?version=6349
- // @grant GM_xmlhttpRequest
- // @grant GM_addStyle
- // ==/UserScript==
- // (function($, undefined) {
- (function() {
- 'use strict';
- $(function() {
- GM_addStyle(`
- #img-preview {
- position: fixed;
- width: auto;
- height: auto;
- }
- .wip-upper-right {
- top: 10px;
- right: 10px;
- }
- .wip-upper-left {
- top: 10px;
- left: 10px;
- }
- `)
- let preview = $('<img id="img-preview"></img>')
- function checkMouse(event, img) {
- console.log(event.clientX + ', ' + window.innerWidth)
- if (event.clientX < window.innerWidth / 2) {
- img.removeClass('wip-upper-left')
- img.addClass('wip-upper-right')
- } else {
- img.removeClass('wip-upper-right')
- img.addClass('wip-upper-left')
- }
- }
- let m_in = (event) => {
- console.log('m_in in ' + $(event.target).toString())
- let img = $('#img-preview')
- checkMouse(event, img)
- let imglink = '';
- let url = $(event.target).attr('href')
- if (url && url !== '') {
- console.log('url is ' + url)
- $.post(url, null, function(data, status, jqxhr) {
- imglink = $(data).find('#file img').first().attr('src');
- if (img.is(':visible')) {
- img.attr('src', imglink)
- }
- console.log('post success, imglink:' + imglink)
- }).fail(() => { console.log('get image failed') })
- }
- img.show()
- }
- let m_out = (event) => {
- let img = $('#img-preview')
- img.hide()
- img.attr('src', null)
- }
- preview.appendTo('body')
- preview.hide()
- let addPreviewEvent = function(node) {
- if (node.text().startsWith('File:')) {
- node.hover(m_in, m_out)
- }
- }
- waitForKeyElements("#mw-category-media a", addPreviewEvent);
- })
- })()
- //})(window.jQuery.noConflict(true) || $); // not work