Cours Web

Réalisation de sites Internet Lausanne


Affichage épuré du programme TV d'edicom

Ce petit script pour GreaseMonkey ne conserve que l'information utile de la page TV du site edicom

D'autre part, le survol des titres des emissions affiche le détail dans un div en position fixed. Plus besoin d'ouvrir de popup et fini le retour en haut de page.

Attention ! le script charge prototype.js, il faut veiller à ce que ce fichier soit accessible.

// ==UserScript==
// @name           Edicom TV
// @namespace      userscripts.ludomedia.ch
// @description    Debug Edicom
// @include        http://www.edicom.ch/fr/loisirs/tv/*
// ==/UserScript==

document.body.style.opacity = '0';

var scripts = [
    'http://www.prototypejs.org/assets/2007/1/18/prototype.js'
];
for (i in scripts) {
    var script = document.createElement('script');
    script.src = scripts[i];
    document.getElementsByTagName('head')[0].appendChild(script);
}

var p = unsafeWindow;

window.addEventListener('load', function() {

	p.$$('embed').each( function(element) { element.remove(); } );
	p.$$('a.newsLink').each( function(element) {
			element.removeAttribute('href');
			element.style.color = 'green';
			element.style.cursor = 'pointer';
			
			var oc = new p.String(element.readAttribute('onclick'));
			oc = oc.gsub(/javascript:openDet\(|\);/, '').split(',');
			var url = '/fr/loisirs/tv/det.php?idIndex='+oc[0]+'&idContent='+oc[1];

			element.onmouseover = function() {
				new p.Ajax.Updater('my_preview', url, { encoding: 'ISO-8859-1'} );
			}
			
	});

	var maindiv = p.$(p.$$('.newsDetailText')[0].parentNode);
	p.$('flashcontent').remove();
	var md = maindiv.remove();
	md.style.width = '450px';

	document.body.innerHTML = '';

	var e = document.createElement('div');
	e.id = 'my_preview';
	e.style.position = 'fixed';
	e.style.right = '0';
	e.style.top = '0';
	e.style.width = '460px';
	e.style.height = '600px';
	e.style.backgroundColor = 'white';
	e.style.border = '1px solid black';
	document.body.appendChild(e);
	document.body.appendChild(md);
	document.body.style.background = 'white';
	document.body.style.padding = '12px';
	document.body.style.opacity = '1.0';

}, false);