Wikipedia:Bar/Discussioni/Ricerca automatica nel testo

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Ricerca automatica nel testo NAVIGAZIONE


Prendendo spunto da un altro sito internet, mi sono implementato questo codice da aggiungere al monobook (provato con Vector + Firefox e IE8).

Codice sorgente
function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

function hidePopup()
{
    document.getElementById("cercaPopup").style.display = "none";
}

function showPopup(testo, x, y)
{
  scrolling = getScrollXY();
  popup = document.getElementById("cercaPopup");
  popup.style.left = (x+scrolling[0]+5)+"px";
  popup.style.top = (y+scrolling[1]-5-37)+"px";
  popup.style.display = "block";
//  popup.onclick = function(){window.open('http://it.wikipedia.org/w/index.php?title=Speciale%3ARicerca&search='+encodeURIComponent(testo), 'searchPage'+Math.random());};
  popup.onclick = function(){window.open('http://it.wikipedia.org/w/index.php?title=Speciale%3ARicerca&search='+encodeURIComponent(testo), 'searchPage'+x);};
}

if (wgAction=="view")
addLoadEvent ( function ()
{
  var listenerMouseUp = function(e){
    e = (e) ? e : ((window.event) ? window.event : null);
    if(e){
      if(navigator.appName=='Microsoft Internet Explorer' && navigator.userAgent.indexOf("Opera")==-1) //IE
        var t = document.selection.createRange().text;
      else //Non-IE
        var t = document.getSelection ? document.getSelection().toString() : window.getSelection().toString();
      t = t.replace(/^\s+/, '').replace(/\s+$/, ''); //trim
      
      if (t)
        showPopup(t, e.clientX, e.clientY);
      else
        hidePopup();
    }
  }
 
  if (window.addEventListener)
    window.addEventListener('mouseup', listenerMouseUp, false); //Non-IE
  else
    document.onmouseup = listenerMouseUp; //IE

  var img= (BrowserDetect.browser=="Explorer")? new Image() : document.createElement('img');
  img.id = 'cercaPopup';
  img.src = 'http://upload.wikimedia.org/wikipedia/commons/e/ee/Nuvola_apps_comic_strip-cerca.png';
  img.style.height="37px";
  img.style.position = "absolute";
  img.style.width = "50px";
  img.style.zIndex = 3;
  img.style.cursor = "help";
  img.style.display = "none";

  document.getElementsByTagName("body")[0].appendChild(img);
})

In pratica quando si seleziona una parte di testo (ma non in fase di modifica) appare un'immagine che, se cliccata, permette di aprire una nuova scheda con la ricerca su wiki del testo selezionato. Se il testo corrisponde ad una voce esistente viene aperta direttamente quella voce in una nuova scheda. Per far sparire l'immagine basta cliccare in un qualsiasi punto della pagina, eliminando quindi la selezione del testo.

Potete provarlo aggiungendo questo codice in fondo al vostro monobook.

Mi chiedevo se può essere utile da inserire nel monobook globalissimissimo, in modo da renderlo disponibile anche ai semplici lettori. Io direi che è utile, pareri? Jalo 12:03, 23 set 2010 (CEST)[rispondi]

riguardo l'inserimento globale mi chiedo se tale "gadget" non conflitta con estensioni come questa (disponibile anche per Chrome) che permette la ricerca su più motori di ricerca (che personalmente uso per avere, oltre che per en/it.wiki, anche altri siti disponibili). --valepert 12:17, 23 set 2010 (CEST)[rispondi]
Quell'addon lo usano in pochi rispetto alla massa dei lettori, e comunque ho usato apposta uno zIndex basso per evitare queste cose. Questo addon usa uno zIndex maggiore, e quindi "copre" questo tool Jalo 12:28, 23 set 2010 (CEST)[rispondi]
Non credo vada globalizzato: in linea di principio le ricerche utili le inseriamo noi con i wikilink, le altre sono spesso fornite dal browser o da estenzioni come quella di valepert 131.114.10.65 (msg) 13:33, 23 set 2010 (CEST)[rispondi]
comunque la nuvoletta con il Comic Sans è terribile :P --valepert 18:38, 23 set 2010 (CEST)[rispondi]
Adoro il Comic Sans U_U e la mia firma lo dimostra :P Jalo 10:20, 24 set 2010 (CEST)[rispondi]
C'è anche questa estensione che è molto piú usata e permette di fare cose simili con poca fatica, e poi questa che è per me come il pane (solo, è un po' difficile farle lavorare insieme). Jalo, conosci m:Wiktionary/Look Up tool? Magari è possibile riciclare qualche pezzo di codice (in entrambi i versi). Nemo 09:16, 24 set 2010 (CEST)[rispondi]
Il lookUpTool sembrerebbe essere già tra i gadget, MediaWiki:Gadget-dictionaryLookupHover.js Jalo 10:20, 24 set 2010 (CEST)[rispondi]

(torno a capo) Quoto 131.114.10.65, IMHO questo tool torna utile solo quando manca un wikilink (il che è un problema della voce) e quoto valepert per il Comic Sans :P. Sai invece cosa (IMHO) sarebbe più utile offrire a tutti i lettori? Un tool che faccia apparire, al passaggio del mouse su tutti i link rossi, un fumetto che offre la possibilità di fare una ricerca per quel dato termine (credo che alla maggior parte dei lettori interesserebbe di più fare una ricerca piuttosto che accedere alla pagina per scrivere la voce). --Una giornata uggiosa '94 · E poi, di che parliamo? 15:41, 24 set 2010 (CEST)[rispondi]

In realtà le linee guida dicono di non mettere due volte in una voce lo stesso wikilink. Quindi, se mi trovo in fondo alla voce, dovrei scorrermela tutta per andare a cercare dove si trova il wikilink che mi serve. Con questo tool non sarebbe necessario.
Quanto alle varie estensioni, credo che sia evidente che le persone che se le sono installate saranno si e no il 2% del totale (ad essere generosi) Jalo 18:12, 24 set 2010 (CEST)[rispondi]