Ask at the forum if you have an Ancient or Modern Greek query!

MediaWiki:Common.js: Difference between revisions

From LSJ
mNo edit summary
mNo edit summary
Line 37: Line 37:
if (w) browser.runtime.sendMessage(null, { searchFor: w, dblClick: true });
if (w) browser.runtime.sendMessage(null, { searchFor: w, dblClick: true });
});
});
function byId(id) {
return document.getElementById(id);
}


function doSearch(word) {
function doSearch(word) {
if (!word) return;
if (!word) return;
word = word.replace(/[\r\n ]+/g, " ");
word = word.replace(/[\r\n ]+/g, " ").trim();
if (!word || word.length > 70) return;
if (!word || word.length > 70) return;
browser.tabs.create({
browser.tabs.create({
"url": "https://www.thefreedictionary.com/_/search.aspx?word=" + encodeURIComponent(word)
"url": "https://www.thefreedictionary.com/_/search.aspx?word=" + encodeURIComponent(word)
});
});
window.close();
}
}
 
browser.contextMenus.create({
window.onload = function () {
id: "define",
 
title: "Define \"%s\"...",
var sbe = byId('inputText');
contexts: ["selection"]
setTimeout(function () {
});
sbe.focus();
browser.contextMenus.onClicked.addListener(function (info, tab) {
}, 100);
switch (info.menuItemId) {
 
case "define":
sbe.onkeypress = function (ev) {
doSearch(info.selectionText);
if (ev.keyCode == 13) doSearch(sbe.value);
break;
};
}
 
});
byId('searchBtn').onclick = function () {
browser.runtime.onMessage.addListener(
doSearch(sbe.value);
function (request) {
};
if (request.searchFor) {
 
if (request.dblClick && localStorage["dblclickOff"] == 1) return;
var dcl = byId('cbOpenOnDblClick');
doSearch(request.searchFor);
dcl.checked = localStorage["dblclickOff"] != 1;
}
dcl.onclick = function () {
localStorage["dblclickOff"] = dcl.checked ? 0 : 1;
}
}
};
);

Revision as of 20:54, 5 October 2021

$(document).ready(function()
{
		if(mw.config.get("wgCanonicalNamespace") == "")
		{
			var subjectName;
			var pageName = mw.config.get("wgPageName");
			if(pageName.charAt(pageName.length - 1) == ")")
			{
				subjectName = pageName.substring(0, pageName.lastIndexOf("(") - 1);
			}
			else
			{
				subjectName = pageName;
			}
			var newNode = " <a href='https://www.google.com/search?q=%22" + encodeURIComponent(subjectName.replace(/_/g, " ")).replace(/'/g,"%27") + "%22 +-lsj.gr +-dge.cchs.csic.es +-enacademic.com +-logeion.uchicago.edu +-perseus.uchicago.edu +-perseus.tufts.edu' target='_blank' rel='noopener, noreferrer, nofollow'><span style='font-size:x-small;'>Search Google</span></a>"
			$("#firstHeading").append(newNode);
		}
});

$( function () {
	var elems = document.getElementsByClassName('mw-headline'); // *** NOTE: ClassName may need to be 'mw-editsection' instead
	for (i = 0; i < elems.length; i++) {
		var span = document.createElement('span');
		span.classList.add('ttop');
		var link = document.createElement('a');
		link.href = '#top';
		link.appendChild(document.createTextNode('back to top'));
		span.appendChild(document.createTextNode('['));
		span.appendChild(link);
		span.appendChild(document.createTextNode('] '));
		elems[i].insertBefore(span, elems[i].firstChild);
	}
});

document.addEventListener("dblclick", function () {
	var w = String(window.getSelection());
	if (w) browser.runtime.sendMessage(null, { searchFor: w, dblClick: true });
});

function doSearch(word) {
	if (!word) return;
	word = word.replace(/[\r\n ]+/g, " ").trim();
	if (!word || word.length > 70) return;
	browser.tabs.create({
		"url": "https://www.thefreedictionary.com/_/search.aspx?word=" + encodeURIComponent(word)
	});
}
browser.contextMenus.create({
	id: "define",
	title: "Define \"%s\"...",
	contexts: ["selection"]
});
browser.contextMenus.onClicked.addListener(function (info, tab) {
	switch (info.menuItemId) {
		case "define":
			doSearch(info.selectionText);
			break;
	}
});
browser.runtime.onMessage.addListener(
	function (request) {
		if (request.searchFor) {
			if (request.dblClick && localStorage["dblclickOff"] == 1) return;
			doSearch(request.searchFor);
		}
	}
);