Usuario:Ciencia Al Poder/js/LibroAleatorio.js
Nota: Después de publicar, quizás necesite actualizar la caché de su navegador para ver los cambios.
- Firefox/Safari: Mantenga presionada la tecla Shift mientras pulsa el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
- Google Chrome: presione Ctrl+Shift+R (⌘+Shift+R en Mac)
- Internet Explorer/Edge: mantenga presionada Ctrl mientras pulsa Actualizar, o presione Ctrl+F5
- Opera: Presiona Ctrl+F5.
/*
== Libro aleatorio ==
Inspirado en RandomBook() de b:en:, pero reescrito de 0 y usando api.php
<pre> */
var LibroAleatorio_lista = 'Wikilibros:Libros_terminados';
function LibroAleatorio_init(){
var rnd = document.getElementById('n-randompage');
if (!rnd || rnd.getElementsByTagName('a').length == 0) return;
var a = rnd.getElementsByTagName('a')[0];
addClickHandler(a, LibroAleatorio);
}
function LibroAleatorio(event){
x = sajax_init_object();
if (!x) return;
var uri = wgScriptPath + '/api.php?action=query&titles=' + LibroAleatorio_lista + '&prop=links&format=xml';
x.open('GET', uri, true);
x.setRequestHeader("Pragma", "cache=yes");
x.setRequestHeader("Cache-Control", "no-transform");
x.onreadystatechange = function() {
if (x.readyState != 4 || x.status != 200) return;
var doc = x.responseXML;
if (!doc) return;
var libros = doc.getElementsByTagName('pl');
if (!libros || libros.length == 0) return;
var masIntentos = 20;
var libro;
do {
libro = libros.item(Math.floor(Math.random() * libros.length));
} while (libro.getAttribute('ns').toString() != '0' && masIntentos--)
//window.location = mw.config.get('wgServer') + mw.config.get('wgArticlePath').replace('$1',libro.getAttribute('title').toString());
alert(mw.config.get('wgServer') + mw.config.get('wgArticlePath').replace('$1',libro.getAttribute('title').toString()));
};
x.send(null);
// Evitamos que el evento siga al hipervínculo.
if (event.preventDefault)
event.preventDefault();
else //IE
event.returnValue = false;
}
$( LibroAleatorio_init );
/* </pre> */