|
|
(No se muestran 2 ediciones intermedias de otro usuario) |
Línea 1: |
Línea 1: |
| /* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios que usen la apariencia Vector */ | | /* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios que usen la apariencia Vector */ |
− | // Control de parámetros para búsqueda resaltada
| |
− | var paramresalte = "find";
| |
− | //Recuperamos parámetros
| |
− | var get_params = function(search_string) {
| |
− |
| |
− | var parse = function(params, pairs) {
| |
− | var pair = pairs[0];
| |
− | var parts = pair.split('=');
| |
− | var key = decodeURIComponent(parts[0]);
| |
− | var value = decodeURIComponent(parts.slice(1).join('='));
| |
− |
| |
− | // Handle multiple parameters of the same name
| |
− | if (typeof params[key] === "undefined") {
| |
− | params[key] = value;
| |
− | } else {
| |
− | params[key] = [].concat(params[key], value);
| |
− | }
| |
− |
| |
− | return pairs.length == 1 ? params : parse(params, pairs.slice(1))
| |
− | }
| |
− |
| |
− | // Get rid of leading ?
| |
− | return search_string.length == 0 ? {} : parse({}, search_string.substr(1).split('&'));
| |
− | }
| |
− |
| |
− | var params = get_params(location.search);
| |
− | if(params["search"]){
| |
− | document.querySelectorAll(".mw-search-result-heading a").forEach(a => {
| |
− | a.href = a.href + "?"+paramresalte+"="+params["search"];
| |
− | });
| |
− | }
| |
− |
| |
− |
| |
− | var InstantSearch = {
| |
− |
| |
− | "highlight": function (container, highlightText)
| |
− | {
| |
− | var internalHighlighter = function (options)
| |
− | {
| |
− |
| |
− | var id = {
| |
− | container: "container",
| |
− | tokens: "tokens",
| |
− | all: "all",
| |
− | token: "token",
| |
− | className: "className",
| |
− | sensitiveSearch: "sensitiveSearch"
| |
− | },
| |
− | tokens = options[id.tokens],
| |
− | allClassName = options[id.all][id.className],
| |
− | allSensitiveSearch = options[id.all][id.sensitiveSearch];
| |
− |
| |
− |
| |
− | function checkAndReplace(node, tokenArr, classNameAll, sensitiveSearchAll)
| |
− | {
| |
− | var nodeVal = node.nodeValue, parentNode = node.parentNode,
| |
− | i, j, curToken, myToken, myClassName, mySensitiveSearch,
| |
− | finalClassName, finalSensitiveSearch,
| |
− | foundIndex, begin, matched, end,
| |
− | textNode, span, isFirst;
| |
− |
| |
− | for (i = 0, j = tokenArr.length; i < j; i++)
| |
− | {
| |
− | curToken = tokenArr[i];
| |
− | myToken = curToken[id.token];
| |
− | myClassName = curToken[id.className];
| |
− | mySensitiveSearch = curToken[id.sensitiveSearch];
| |
− |
| |
− | finalClassName = (classNameAll ? myClassName + " " + classNameAll : myClassName);
| |
− |
| |
− | finalSensitiveSearch = (typeof sensitiveSearchAll !== "undefined" ? sensitiveSearchAll : mySensitiveSearch);
| |
− |
| |
− | isFirst = true;
| |
− | while (true)
| |
− | {
| |
− | if (finalSensitiveSearch)
| |
− | foundIndex = nodeVal.indexOf(myToken);
| |
− | else
| |
− | foundIndex = nodeVal.toLowerCase().indexOf(myToken.toLowerCase());
| |
− |
| |
− | if (foundIndex < 0)
| |
− | {
| |
− | if (isFirst)
| |
− | break;
| |
− |
| |
− | if (nodeVal)
| |
− | {
| |
− | textNode = document.createTextNode(nodeVal);
| |
− | parentNode.insertBefore(textNode, node);
| |
− | } // End if (nodeVal)
| |
− |
| |
− | parentNode.removeChild(node);
| |
− | break;
| |
− | } // End if (foundIndex < 0)
| |
− |
| |
− | isFirst = false;
| |
− |
| |
− |
| |
− | begin = nodeVal.substring(0, foundIndex);
| |
− | matched = nodeVal.substr(foundIndex, myToken.length);
| |
− |
| |
− | if (begin)
| |
− | {
| |
− | textNode = document.createTextNode(begin);
| |
− | parentNode.insertBefore(textNode, node);
| |
− | } // End if (begin)
| |
− |
| |
− | span = document.createElement("span");
| |
− | span.className += finalClassName;
| |
− | span.appendChild(document.createTextNode(matched));
| |
− | parentNode.insertBefore(span, node);
| |
− |
| |
− | nodeVal = nodeVal.substring(foundIndex + myToken.length);
| |
− | } // Whend
| |
− |
| |
− | } // Next i
| |
− | }; // End Function checkAndReplace
| |
− |
| |
− | function iterator(p)
| |
− | {
| |
− | if (p === null) return;
| |
− |
| |
− | var children = Array.prototype.slice.call(p.childNodes), i, cur;
| |
− |
| |
− | if (children.length)
| |
− | {
| |
− | for (i = 0; i < children.length; i++)
| |
− | {
| |
− | cur = children[i];
| |
− | if (cur.nodeType === 3)
| |
− | {
| |
− | checkAndReplace(cur, tokens, allClassName, allSensitiveSearch);
| |
− | }
| |
− | else if (cur.nodeType === 1)
| |
− | {
| |
− | iterator(cur);
| |
− | }
| |
− | }
| |
− | }
| |
− | }; // End Function iterator
| |
− |
| |
− | iterator(options[id.container]);
| |
− | } // End Function highlighter
| |
− | ;
| |
− |
| |
− |
| |
− | internalHighlighter(
| |
− | {
| |
− | container: container
| |
− | , all:
| |
− | {
| |
− | className: "highlighter"
| |
− | }
| |
− | , tokens: [
| |
− | {
| |
− | token: highlightText
| |
− | , className: "highlight"
| |
− | , sensitiveSearch: false
| |
− | }
| |
− | ]
| |
− | }
| |
− | ); // End Call internalHighlighter
| |
− |
| |
− | } // End Function highlight
| |
− |
| |
− | };
| |
− |
| |
− |
| |
− | if(params[paramresalte]){
| |
− | var container = document.getElementById("mw-content-text");
| |
− | var findWord = params[paramresalte];
| |
− | findWord = findWord.replace(",", "");
| |
− | const regex = /(?<=")[^"]+(?=")/;
| |
− | var find1 = findWord.match(regex);
| |
− | console.log(find1);
| |
− | if(find1!=null){
| |
− | findWord = find1[0].replace("+", " ");
| |
− | }
| |
− | var findWordArr = findWord.split("+");
| |
− | //$('html,body').animate({scrollTop:( )},1000,function(){});
| |
− | findWordArr.forEach(a => {
| |
− | InstantSearch.highlight(container, a);
| |
− | });
| |
− |
| |
− | }
| |
− |
| |
− | $("#footer-info-lastmod").append(" El Diccionario interactivo de Ceán Bermúdez está subvencionado por la Dirección General de Bibliotecas, Archivos y Museos (Área de Gobierno de Cultura, Turismo y Deporte) del Ayuntamiento de Madrid con cargo a los presupuestos municipales del año 2020")
| |
− |
| |
− |
| |
| | | |
| $(".infobox-autor p").remove(); | | $(".infobox-autor p").remove(); |
− |
| |
| $("#mw-content-text p").each(function() { | | $("#mw-content-text p").each(function() { |
| var $this = $(this); | | var $this = $(this); |
| if( $.trim($this.html()) == "<br>") $this.remove(); | | if( $.trim($this.html()) == "<br>") $this.remove(); |
| }); | | }); |