MediaWiki:Gadget-CCC.js: Unterschied zwischen den Versionen
Admin (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Admin (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
/** | |||
* Gadget-CCC.js | |||
* ============================================================================ | |||
* Bettet Vorträge von media.ccc.de ein. | |||
* | |||
* KEINE ZWEI-KLICK-SPERRE: media.ccc.de setzt keine Cookies, speichert nichts | |||
* im Browser und betreibt weder Werbung noch Reichweitenmessung. Damit greift | |||
* die Einwilligungspflicht des §165 TKG nicht, und für die IP-Übertragung | |||
* beim Abruf trägt das berechtigte Interesse. Anders bei fahrplan.oebb.at und | |||
* makertube.net – die haben ihre Vorschaubox. | |||
* | |||
* EINBINDUNG AUF EINER SEITE | |||
* <div class="ccc-embed" data-video="38c3-12345-titel-des-vortrags"></div> | |||
* | |||
* data-Attribute: | |||
* data-video Pflicht. Der Teil der Adresse hinter media.ccc.de/v/. | |||
* data-width Breite (Standard 640; "100%" ist erlaubt). | |||
* data-height Höhe (Standard 360). | |||
* ============================================================================ | |||
*/ | |||
$( function () { | $( function () { | ||
$( '.ccc-embed' ).each( function () { | |||
var id = $( this ).data( 'video' ); | |||
if ( !id ) { return; } | |||
var iframe = document.createElement( 'iframe' ); | |||
iframe.src = 'https://media.ccc.de/v/' + id + '/oembed'; | |||
iframe.width = $( this ).data( 'width' ) || 640; | |||
iframe.height = $( this ).data( 'height' ) || 360; | |||
iframe.frameBorder = '0'; | |||
iframe.allowFullscreen = true; | |||
iframe.title = 'Vortragsaufzeichnung'; | |||
// Verhindert waagrechtes Scrollen der ganzen Seite auf Telefonen. | |||
iframe.style.maxWidth = '100%'; | |||
// Erst laden, wenn der Player in Sichtweite kommt. | |||
iframe.loading = 'lazy'; | |||
this.appendChild( iframe ); | |||
// Rückfallebene: wer iframes blockiert (uBlock, NoScript, Textbrowser), | |||
// sähe sonst nur ein weißes Loch ohne Hinweis auf den Vortrag. | |||
var fuss = document.createElement( 'div' ); | |||
fuss.style.cssText = 'font-size:85%;color:#54595d;margin-top:0.4em'; | |||
var link = document.createElement( 'a' ); | |||
link.href = 'https://media.ccc.de/v/' + id; | |||
link.target = '_blank'; | |||
link.rel = 'noopener'; | |||
link.textContent = 'Vortrag bei media.ccc.de öffnen'; | |||
fuss.appendChild( link ); | |||
this.appendChild( fuss ); | |||
} ); | |||
} ); | } ); | ||
Aktuelle Version vom 19. September 2026, 20:06 Uhr
/**
* Gadget-CCC.js
* ============================================================================
* Bettet Vorträge von media.ccc.de ein.
*
* KEINE ZWEI-KLICK-SPERRE: media.ccc.de setzt keine Cookies, speichert nichts
* im Browser und betreibt weder Werbung noch Reichweitenmessung. Damit greift
* die Einwilligungspflicht des §165 TKG nicht, und für die IP-Übertragung
* beim Abruf trägt das berechtigte Interesse. Anders bei fahrplan.oebb.at und
* makertube.net – die haben ihre Vorschaubox.
*
* EINBINDUNG AUF EINER SEITE
* <div class="ccc-embed" data-video="38c3-12345-titel-des-vortrags"></div>
*
* data-Attribute:
* data-video Pflicht. Der Teil der Adresse hinter media.ccc.de/v/.
* data-width Breite (Standard 640; "100%" ist erlaubt).
* data-height Höhe (Standard 360).
* ============================================================================
*/
$( function () {
$( '.ccc-embed' ).each( function () {
var id = $( this ).data( 'video' );
if ( !id ) { return; }
var iframe = document.createElement( 'iframe' );
iframe.src = 'https://media.ccc.de/v/' + id + '/oembed';
iframe.width = $( this ).data( 'width' ) || 640;
iframe.height = $( this ).data( 'height' ) || 360;
iframe.frameBorder = '0';
iframe.allowFullscreen = true;
iframe.title = 'Vortragsaufzeichnung';
// Verhindert waagrechtes Scrollen der ganzen Seite auf Telefonen.
iframe.style.maxWidth = '100%';
// Erst laden, wenn der Player in Sichtweite kommt.
iframe.loading = 'lazy';
this.appendChild( iframe );
// Rückfallebene: wer iframes blockiert (uBlock, NoScript, Textbrowser),
// sähe sonst nur ein weißes Loch ohne Hinweis auf den Vortrag.
var fuss = document.createElement( 'div' );
fuss.style.cssText = 'font-size:85%;color:#54595d;margin-top:0.4em';
var link = document.createElement( 'a' );
link.href = 'https://media.ccc.de/v/' + id;
link.target = '_blank';
link.rel = 'noopener';
link.textContent = 'Vortrag bei media.ccc.de öffnen';
fuss.appendChild( link );
this.appendChild( fuss );
} );
} );