Hinweis: Leere nach dem Speichern den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Internet Explorer: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Gehe zu Menü → Einstellungen (Opera → Einstellungen auf dem Mac) und dann auf Datenschutz & Sicherheit → Browserdaten löschen → Gespeicherte Bilder und Dateien.
/**
* Print options is a Gadget writen by Derk-Jan Hartman / User:TheDJ
* For more information see [[User:TheDJ/Print_options]]
*
* Licensed MIT and/or CC-by-SA 4.0
Copyright (c) 2010-2017 Derk-Jan Hartman / User:TheDJ
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
/*global jQuery, mediaWiki */
(function( $, mw ) {
'use strict';
var windowManager;
var printDialog;
var printOptions = {
install: function () {
var $printLink = $( '#t-print a' );
if ( $printLink.length === 0 ) {
return;
}
$printLink
.text( 'Print page' )
.get( 0 ).addEventListener( 'click', function ( e ) {
mw.loader.using( ['oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows'] ).done( printOptions.createWindow );
e.stopImmediatePropagation();
e.preventDefault();
}, true ); // Use capturing phase, to beat the other click handler
// Late pre-loading
mw.loader.load( ['oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows'] );
},
createWindow: function () {
function PrintDialog ( config ) {
PrintDialog.super.call( this, config );
}
OO.inheritClass( PrintDialog, OO.ui.ProcessDialog );
PrintDialog.static.name = 'printdialog';
PrintDialog.static.title = 'Print this page';
PrintDialog.static.actions = [
{action: 'print', label: 'Print', flags: 'primary'},
{label: 'Cancel', flags: 'safe' }
];
PrintDialog.prototype.initialize = function () {
var checkbox, fieldset = [];
PrintDialog.super.prototype.initialize.apply( this, arguments );
this.panel = new OO.ui.PanelLayout( { padded: true, expanded: false } );
this.content = new OO.ui.FieldsetLayout();
for( var i = 0; i < printOptions.questions.length; i++) {
if( printOptions.questions[i].type === 'checkbox' )
{
checkbox = new OO.ui.CheckboxInputWidget( {
selected: printOptions.questions[i].checked
} );
printOptions.questions[i].widget = checkbox;
fieldset.push(new OO.ui.FieldLayout( checkbox, { label: printOptions.questions[i].label, align: 'inline' } ) );
}
}
this.content.addItems( fieldset );
this.panel.$element.append( this.content.$element );
this.$body.append( this.panel.$element );
};
PrintDialog.prototype.getActionProcess = function ( action ) {
var dialog = this;
if ( action === 'print' ) {
return new OO.ui.Process( function () {
// Get values of checkboxes
var question;
for( var i = 0; i < printOptions.questions.length; i++) {
question = printOptions.questions[i];
if( question.type === 'checkbox' && question.widget ) {
printOptions[question.returnvalue] = question.widget.isSelected();
}
}
dialog.close( { action: action } ).done( function() {
printOptions.changePrintCSS();
printOptions.otherEnhancements();
window.print();
window.location = window.location;
});
} );
}
return PrintDialog.super.prototype.getActionProcess.call( this, action );
};
if ( !windowManager ) {
windowManager = new OO.ui.WindowManager();
$( 'body' ).append( windowManager.$element );
}
if ( !printDialog ) {
printDialog = new PrintDialog({
size: 'medium'
});
windowManager.addWindows( [printDialog] );
}
windowManager.openWindow( printDialog );
},
changePrintCSS: function () {
/* Here we:
- disable stylesheets that are print specific
- make screen specific stylesheets also enabled for print medium
- remove print specific stylerules
- make screen specific stylerules also enabled for print medium
*/
var printStyle = '';
if( this.enhanced === false ) {
var i, j, k,
rule,
hasPrint,
hasScreen,
rules,
stylesheet,
disabled,
stylesheets = document.styleSheets;
for( i = 0; i < stylesheets.length; i++ ) {
stylesheet = stylesheets[i];
disabled = false;
if( !stylesheet.media ) {
continue;
}
if( stylesheet.media.mediaText && stylesheet.media.mediaText.indexOf( 'print' ) !== -1 ) {
if(stylesheet.media.mediaText.indexOf( 'screen' ) === -1 ) {
stylesheet.disabled = true;
}
} else if( stylesheet.media.mediaText && stylesheet.media.mediaText.indexOf( 'screen' ) !== -1) {
if( stylesheet.media.mediaText.indexOf( 'print' ) === -1 ) {
try {
stylesheet.media.appendMedium( 'print' );
} catch( e ) {
stylesheet.media.mediaText += ',print';
}
}
}
/* now test individual stylesheet rules */
try {
rules = stylesheet.cssRules || stylesheet.rules;
} catch( e ) {
/* Cross domain issue. */
mw.log.warn( 'Not possible to correct stylesheet due to cross origin restrictions.' );
continue;
}
stylesheet.compatdelete = stylesheet.deleteRule || stylesheet.removeRule;
for( j = 0; rules && j < rules.length; j++ ) {
rule = rules[j];
hasPrint = false;
hasScreen = false;
if( rule.type === CSSRule.MEDIA_RULE && rule.media ) {
for( k = 0; k < rule.media.length; k++ ) {
if( rule.media[k] === 'print' ) {
hasPrint = true;
} else if (rule.media[k] === 'screen' ) {
hasScreen = true;
}
}
} else {
continue;
}
if( hasPrint && !hasScreen ) {
stylesheet.compatdelete(j);
j--;
} else if ( hasScreen && !hasPrint ) {
try {
rule.media.appendMedium( 'print' );
} catch (e) {
rule.media.mediaText += ',print';
}
}
}
}
}
/* Add css to hide images */
if( this.noimages ) {
printStyle += 'img, .thumb {display:none;}\n';
}
/* Add css to hide references markers and the references lists */
if( this.norefs ) {
printStyle += '.mw-headline[id="References"], ol.references, .reference {display:none;}\n';
}
if( this.notoc ) {
printStyle += '#toc, .toc {display:none;}\n';
}
if( this.nobackground ) {
printStyle += '* {background:none !important;}\n';
}
if( this.blacktext ) {
printStyle += '* {color:black !important;}\n';
}
if ( printStyle ) {
$( 'head' ).append( '<style type="text/css" media="print">' + printStyle + '</style>' );
}
},
/* Rewrite the "retrieved from" url to be readable */
otherEnhancements: function () {
var link = $( 'div.printfooter a' );
link.text( decodeURI( link.text() ) );
},
questions: [
{
label: "Hide interface elements",
type: "checkbox",
checked: true,
returnvalue: 'enhanced'
},
{
label: 'Hide images',
type: 'checkbox',
checked: false,
returnvalue: 'noimages'
},
{
label: 'Hide references',
type: 'checkbox',
checked: false,
returnvalue: 'norefs'
},
{
label: 'Hide Table of Contents',
type: 'checkbox',
checked: false,
returnvalue: 'notoc'
},
{
label: 'Remove backgrounds (Your browser might or might not override this)',
type: 'checkbox',
checked: false,
returnvalue: 'nobackground'
},
{
label: 'Force all text to black',
type: 'checkbox',
checked: true,
returnvalue: 'blacktext'
}
]
};
if ( mw.config.get( 'wgNamespaceNumber' ) >= 0 ) {
$( printOptions.install );
}
} ) ( jQuery, mediaWiki );