Tipps und Tricks

Tipps & Tricks

In diesem Artikel befasse ich mich mit einigen Problemen, die im Umgang mit Computern auftreten können. Es ist auch ein kleines Nachschlagewerk für mich selbst, da ich nach geraumer Zeit häufig viele Lösungen dazu wieder vergessen habe.

Die Beiträge streifen im Besonderen die Bereiche Microsoft Windows, Webdesign, Webprogrammierung und Websicherheit ect. Meist sind es nur kurze Anleitungen und Tipps, für die man lange recherchiert hat, welche aber wichtige Informationen enthalten, die letztlich zum Gelingen beitragen.

Einige Javascript-Beispiele:

YouTube-Video in Joomla! einbinden

In zahlreichen Foren wird über YouTube-Videos in Joomla! diskutiert. Viele Wege führen nach Rom heißt es so schön in einem weisen Sprichwort, das auch für dieses Vorhaben gilt. Allerdings stehen Joomlaner vor der Hürde, dass Editoren iframe-Codes feindlich gesinnt sind. Selbst wenn in der JCE-Editor-Konfiguration die Codebereinigung (HTML überprüfen) deaktiviert ist, im TinyMCE der Textfilter ausgeschaltet wurde und "iframe" aus den verbotene Elementen entfernt wurde, kann es durchaus passieren, dass der iframe-Code trotzdem aus dem Beitrag verschwindet, wofür es aber einige Lösungswege gibt.

Lösung 1 Um zum Einfügen von iframe-Codes den eigensinnigen Editoren nicht in die Quere zu kommen, müsste für diesen Zweck nur mit dem Quellcode oder ohne Editor gearbeitet werden, was aber unkomfortabel und etwas umständlich ist. Der Beitrag darf danach nicht mehr mit dem Editor bearbeitet werden.

Lösung 2 Eine weitere Möglichkeit wäre, den iframe-Code in eine externe HTML-Datei auszulagern. Danach könnte ein benutzerdefiniertes Modul mit einer eigenen oder leeren Modulposition erzeugt werden. Mit dem Plugin "Inhalt - Module laden" (plugins/content/loadmodule), einem Standard-Bordmittel von Joomla!, lässt sich das Video dann in einem beliebigen Beitrag, an beliebiger Stelle einbinden. Beispiel: pdf button Miezekatzen.pdf

Lösung 3Meiner Ansicht nach, dürfte die beste Lösung sein, die JCE MediaBox dafür zu verwenden. Die Vorgehensweise ist nicht nur äußerst einfach, sondern beschert auch noch eine gute Optik. Zuerst öffnet man auf YouTube das gewünschte Video. Aus der Adressleiste des Browsers wird nun der URL kopiert, in diesem Beispiel "https://www.youtube.com/embed/WRQJUS3y00Y" und fügt ihn mit dem JCE als Text- oder Bildlink im Beitrag ein.

KleinerTipp!
Holen Sie sich auch den Einbettungscode und klauen (kopieren) Sie das Vorschaubild von YouTube. Der iframe-Code enthält nämlich die genaue Größenangabe des Videos (width="854" height="480"). Das Vorschaubild kann so wie hier einfügt und mit dem Video verlinkt werden.

thumb miezekatzen

Standort ändern in Windows 10

Positionsdienst-Erweiterungen
Nach einem Update, vermutlich nach dem Anniversary Update, besteht nun die Möglichkeit den Standardaufenthaltsort selbst einzutragen. Diese Einstellung hat Microsoft bereitgestellt, wenn kein Zugriff auf GPS erfolgen kann oder kein GPS-Tracker installiert ist. Erst als ich mir die Neuerungen in den Update-Beschreibungen zur Brust nahm, entdeckte ich, dass Microsoft hier gewaltig nachgebessert hat.
 
Cortana benötigt einen Standort
Wer die digitale Sekretärin Cortana nutzen will, kommt nicht umhin, den Standort anzugeben. Kein Standort bedeutet für die redselige Cortana häufig großes Schweigen. In diesem Fall werden nur noch lokale Fragen in Windows 10 beantwortet.

Mit dem Anniversary Update unter Windows 10 Pro, besteht nun zusätzlich die Möglichkeit, Cortana zu deaktivieren, wenn sie nervt. Dabei kann der Positionsdienst nach wie vor, auch ohne die Dame genutzt werden.
 
Standort manuell einzutragen
Fast alle Einstellungen können in Windows 10 bequem über Schalter vorgenommen werden, so auch jene für den Positionsdienst. Dazu sind folgende Schritte erforderlich:

Mehrere Möglichkeiten bieten sich an, zum Positionsdienst zu gelangen. Neben einer Eingabe in der Suche, oder der Option Cortana zu fragen, führen noch zwei weitere Wege zu den Seiten in denen die entsprechenden Einstellungen vorgenommen werden können: Entweder öffnet man das Startmenü icon start oder die Benachrichtigungen über das Symbol ganz rechts in der Taskleiste. Beide Bereiche enthalten den Button »Einstellungen« bzw. »Alle Einstellungen«.

In den Windows-Einstellungen befindet sich neben weiteren Symbolen, auch das Symbol, das wie ein Vorhängeschlosses aussieht. Mit diesem Symbol, das gleichzeitig als Button dient, werden die Datenschutz-Einstellungen geöffnet. Bevor Sie in den Datenschutzoptionen Änderungen vornehmen, sollten Sie sich auf jeden Fall die Datenschutzbestimmungen gut durchlesen, um zu erfahren welche Daten dabei an Microsoft übermittelt werden.
 
thumb windows startthumb einstellungenthumb standortthumb karte standort

Im Fenster der Datenschutzoptionen, das einige gut beschriebene Schalter enthält, können grundsätzliche Datenschutz-Richtlinien vorgegeben werden. Auf der linken Seite findet man in einem Menü die einzelnen Bereiche, in denen zahlreiche weitere Einstellungsmöglichkeiten zur Verfügung stehen. Hier wählen Sie nun »Position« und aktivieren im Positionsfenter den Positionsdienst. Danach klicken Sie auf die Schaltfläche »Als Standort festlegen«.

Der Button »Als Standort festlegen« öffnet die Karten-App, in der die erforderlichen Angaben eingegeben oder geändert werden können. Die Einstellungen werden nach Verlassen der Karten-App automatisch gespeichert. Der Standort wird bei jedem Öffnen nur dann angezeigt, wenn keine andere Karte aufgerufen wurde, doch kann mit dem Symbolstreifen rechts, die Karte mit dem Standort wieder geöffnet werden.

Wurde die genaue Position für »Wetter« erlaubt, sollte in der Wetter-App nach dem Aufruf der Live-Kachel im Startmenü, der richtige Ort erscheinen, falls vorher nichts anderes eingegeben wurde.
 
Wenn die Kiste raucht und kracht, hast sicher du was falsch gemacht!

Firefox SSL-Warnung

Fehlermeldung im Login-Feld
Der bislang beliebte Browser Mozilla Firefox verunsichert die Besucher von Webseiten, die nicht per SSL/TLS verschlüsselt sind. Seit Version 52 werden Login-Felder verunglimpft und von folgender Fehlermeldung verdeckt:

"Diese Verbindung ist nicht sicher. Hier eingegebene Zugangsdaten könnten in falsche Hände geraten."

Firefox ohne Feingefühl
Während Google Chrome und Internet Explorer lediglich neben der Adressleiste höflich auf Sicherheitsmängel hinweisen, verunstaltet Firefox noch zusätzlich das Layout von Seiten ohne SSL-Zertifikat. Damit werden alle Seitenbetreiber bestraft, die Ihren Internetauftritt noch ohne HTTPs ins Web schicken. Diese Taktlosigkeit kann im schlimmsten Fall zu Kundenverlust führen. Besonders betroffen sind Onlineshops und CMS-Webseiten, die angewiesen sind einen Login-Bereich zur Verfügung zu stellen. Mozilla gewinnt damit sicherlich keine großen Sympathien.

ff loginwarnung
ff sicherheitswarnung

Man kann die Warnung zwar einfach wegklicken, doch das Layout bleibt versaut. Es würde doch der Sicherheitshinweis oben neben der Adressleiste genügen, was auch dem IT-Sicherheitsgesetz entspricht und daher völlig in Ordnung ist.

Für Abhilfe sorgt ein Hintertürchen
Damit die störende Fehlermeldung im Login-Feld nicht mehr erscheint, kann man sie mit wenigen Handgriffen deaktivieren und der Login-Bereich ist wieder clean.

So entfernt man die lästige Meldung:
  • Einen neuen Tab öffnen.
  • Im Adressfeld about:config eingeben und Enter drücken..
  • Die Sicherheitsabfrage mit "Ich werde vorsichtig sein, versprochen!" bestätigen.
  • Oben im Feld "Filter“ folgendes eingeben:
  • security.insecure_field_warning.contextual.enabled
  • In den Einstellungen auf den gleichnamigen Eintrag doppelklicken und damit auf false stellen.
Anmerkung:
Meine Webseite verfügt inzwischen auch über ein SSL-Zertifikat, da laut IT-Sicherheitsgesetz (Telemediengesetz, kurz TMG) vom 25.07.2015, unverschlüsselte Seiten in Zukunft mit einer Abmahnung wegen unzureichender Pflichtumsetzung rechnen müssen.


Spamschutz durch Captcha

captcha
Joomla ReCAPTCHA Plugin
In neueren Joomla-Versionen wird ein Captcha-Plugin bereitgestellt, das den Google reCAPTCHA-Service verwendet. Google bietet diesen kostenlosen Service auf der Website google.com/recaptcha an. Dort sind ein Websiteschlüssel und ein geheimer Schlüssel für die eigene Website erhältlich. Allerdings ist ein Google-Konto erforderlich, um diese Funktion nutzen zu können. Das Video zeigt die Vorgehensweise.

Was ist ein Captcha?

Das Captcha ist ein Authentifizierungsverfahren (Challenge-Response-Test), um im Internet einigermaßen sicher zu kommunizieren. Angriffe auf die Webseite werden damit wesentlich eingeschränkt.
Möchte zum Beispiel der Benutzer ein ausgefülltes Formular absenden, muss er vorher eine Aufgabe (Challenge) lösen und das Ergebnis (Response) in das Captcha-Feld eintragen. Die gestellten Aufgaben sollten für Menschen einfach zu lösen sein, für Computer hingegen sehr schwierig. Meist dient dazu ein Text, der als Grafik verzerrt wurde. Computer könnten das zwar auch, doch benötigten sie Mustererkennungs-Algorithmen, um derartige Bilder zu verarbeiten. Eine derartige Software wäre sehr aufwendig zu programmieren und eine hohe Anforderung an die Hardware stellen.

Verschiedene Captcha-Methoden
Neben grafische Captchas werden vereinzelt auch Audio-Captchas oder Video-Captchas eingesetzt. Zunehmend findet man Tiere, Straßenschilder oder andere Motive auf Fotos, die der Benutzer richtig erkennen muss. Immer beliebter werden Rechenaufgaben, bei denen auf Grafik verzichtet wird.

Captcha-Benutzerfreundlichkeit
Da Captcha Bildchen, wie sie zum Beispiel Google zu Verfügung stellt, nicht besonders anwenderfreundlich sind, kann stattdessen eine Rechenaufgabe den Nutzer als Menschen identifizieren. Diese Methode verwende ich auf meinem Kontaktformular, denn neben einer einfachen Bedienung, bietet sie noch weitere Vorteile.

Blockierte Grafik im Browser
Bei manchen Captchas gibt es ja das Problem, dass die Grafiken nicht angezeigt werden, da der Nutzer die Grafikanzeige im Browser ausgeschaltet hat. Deswegen muss man aber nicht auf ein Captcha verzichten. Besonders hier bietet sich die Möglichkeit einer Rechenaufgabe an.

Ein wenig Mathematik
Die Rechenaufgabe als Spamschutz darf nicht zu schwer sein. Es sollte auch ein Schalter vorhanden sein, um unter mehreren Aufgaben wählen zu können. Hat sich der Nutzer für eine Aufgabe entschieden, muss er das richtige Ergebnis ins Captchafeld eintragen. Mit dieser Methode werden keine Grafiken verwendet und sie ist somit auch für Textbrowser geeignet.

Nur bedingte Sicherheit
Allgemein gilt, eine absoluten Schutz von Spam gibt es nicht und wird es wohl nie geben. Hat eine Methode einmal eine gewisse Verbreitung erreicht, darf sie bald als potenziell unsicher angesehen werden. Das Interesse wächst, dessen Lösung zu automatisieren. Alle Captchas bieten daher leider nur eine beschränkte Sicherheit.

Windwes Problemlösung

Fehler werden meist nicht vom PC verschuldet, sondern von dem, der ihn bedient. Hinter vielen kostenlosen Progrämmchen lauern sie, die Wüstlinge, genannt Viren. Die bösartigsten, die Trojaner, schlafen zuerst einige Zeit, um meist später und etappenweise ihr Zerstörungswerk zu verrichten. Der Begriff stammt aus der griechischen Mythologie, in der erzählt wird, wie sich griechische Soldaten in einem hölzernen Pferd versteckten, um nachts Troja anzugreifen. Die meisten Würmer werden zwar von eigenen Windows 10 Bordmitteln, wie zum Beispiel Windows Defender erkannt, doch viele tarnen sich als Apps, die vom Benutzer im gutem Glauben heruntergeladen werden. Sie gaukeln dem Nutzer häufig hilfreiche Wartungstools vor, dabei bewirken sie das pure Gegenteil und verrichten gut getarnt ihr schädliches Werk.

Windows Defender
Statt eines Virenscanners wie Avira, AVG oder andere Anwendungen zum Vernichten bösartiger Software benutze ich seit einigen Jahren den Windows Defender. Warum soll ich ein optionales speicherfressendes Teil installieren, wenn im Windows Betriebssystemen bereits ein leistungsstarkes AntiSpyware Tool integriert ist. Die letzten Versionen des Defenders wurden von Microsoft in soweit verbessert, dass sie jederzeit anderen Virenscannern die Stirn bieten können, jedenfalls den kostenlosen Fremdscannern.

Systemdatei-Überprüfungsprogramm » SFC
Aus Testgründen habe ich den sog. System File Checker, kurz SFC einmal ausgeführt, dabei musste ich feststellen, dass Microsoft auch hier geschraubt hat. Gut zu wissen, denn wurde das Betriebssystem von einem Schädling einmal versaut, kann dieses Windows Dienstprogramm vielleicht helfen. Je nach Schadensgröße, können Reparaturen viel Zeit kosten, doch kann ein "Plattmachen" des Systems in den meisten Fällen damit vermieden werden. Der SFC, kann nur mit Administratorrechten ausgeführt werden und war schon in früheren Windows-Versionen integriert.

Die Vorgehensweise ist ganz einfach: Man kopiert den entsprechenden Befehl mit einem Rechtsklick mit "Einfügen" in die Eingabeaufforderung. Noch komfortabler kann eine Überprüfung und oder Reparatur über PowerShell erledigt werden. Diese kann anstelle der Eingabeaufforderung über Einstellungen /Personalisierung/Taskleiste mit dem Schalter "Ein/Aus" ausgewählt werden.

Wenn das Überprüfungsprogramm feststellt, dass eine geschützte Datei fehlerhaft ist oder überschrieben wurde, holt es die korrekte Version der Datei aus dem Cache-Ordner (%Systemroot%\System32\Dllcache) oder aus den Windows-Installationsdateien. Anschließend wird die inkorrekte Datei ersetzt. Mit SFC kann auch der Cacheordner überprüft und wieder aufgefüllt werden.

Befehle des Systemdatei-Überprüfungsprogramms
Da ich nicht alle Befehle des SFC-Überprüfungsprogramms selbst einzeln ausprobierte, habe ich die folgende Auflistung mit den wichtigsten SFC-Anweisungen dem Artikel KB 310747 der Supportseite von Microsoft entnommen:

sfc /scannow
Überprüft alle geschützten Systemdateien und ersetzt falsche Versionen durch die richtigen Microsoft-Versionen. Für diesen Befehl ist unter Umständen ein Zugriff auf die Windows-Installationsdateien erforderlich.

sfc /scanboot
Überprüft alle geschützten Systemdateien bei jedem Start des Computers. Für diesen Befehl ist jedem Start des Computers unter Umständen ein Zugriff auf die Windows-Installationsdateien erforderlich.

sfc /revert
Setzt die Überprüfung auf die Standardeinstellungen zurück. Es erfolgt keine Überprüfung der geschützten Dateien beim Start des Computers. Die Standardgröße des Caches wird mit diesem Befehl nicht zurückgesetzt.

sfc /scanonce
Überprüft alle geschützten Systemdateien bei einem Neustart des Computers. Für diesen Befehl ist beim Neustart des Computers unter Umständen ein Zugriff auf die Windows-Installationsdateien erforderlich.

sfc /purgecache
Leert den Dateicache und überprüft alle geschützten Systemdateien. Für diesen Befehl ist unter Umständen ein Zugriff auf die Windows-Installationsdateien erforderlich.

sfc /cachesize=x
Legt die Größe des Dateicaches auf x MB fest. Die Standardgröße des Dateicaches beträgt 50 MB. Dieser Befehl macht einen Neustart des Computers erforderlich. Danach muss der Befehl sfc /purgecache ausgeführt werden, um die Größe des Caches auf der Festplatte festzulegen.

Webseiten-Weiterleitung mit Javascrip

HTML- Methode
Zur Weiterleitung auf eine andere Webseite bieten sich mehrere Möglichkeiten. Die einfachste Methode wäre eine "meta http-equiv="refresh-" Weiterleitung. Diese Methode sehen aber Suchmaschinen nicht gerne. Damit hätten nämlich Internetbetrüger leichte Beute, um die Webseite auf eine Schadseite umzuleiten.

PHP- Methode
Die beste Lösung zur Weiterleitung auf eine andere Webseite ist vermutlich ein kleines PHP Script. Wird aber keine PHP-Programmiersprache genutzt und HTML verwendet, kann diese Methode nicht verwendet werden.

Javascript- Methode
Für Nutzer, die ihre Homepage in HTML erstellt haben, bietet sich eine Javascript-Lösung, um eine Webseite sicher auf eine andere Webseite weiterzuleiten. Um diese Methode aber wirklich sicher anzuwenden, sollte das Script unbedingt extern gespeichert werden.


Verzögerte Weiterleitung mit Javascrip

<script language="javascript" type="text/javascript">
<!--
window.setTimeout('window.location = "http://www.ihre-seite.de"',2000);
//-->
</script>

Tagesspruch mit Javascrip


<script language="javascript" type="text/javascript">
<!--
var msg = new Array();
Gs = new Date();

today   = Gs.getDate();
msg[1]  = "Bei manchen Leuten ist ein Gehirnschlag ein Schlag ins Leere !";
msg[2]  = "Wer heiratet, kann sich die Sorgen teilen, die er vorher nicht hatte.";
msg[3]  = "Ich verspreche nichts. Und das halte ich auch.";
msg[4]  = "Der Computer kann alles. Aber sonst nichts.";
msg[5]  = "Hast Du Glück im Spiel, hast Du Geld für die Liebe !";
msg[6]  = "Früh arbeiten macht nur früh müde.";
msg[7]  = "Kluge leben von den Dummen. Dumme leben von der Arbeit.";
msg[8]  = "Wer zuletzt lacht, hat es nicht eher begriffen.";
msg[9]  = "Nonsens ist der Sieg des Geistes über die Vernunft.";
msg[10] = "Wer faulenzt schafft Arbeitsplätze.";
msg[11] = "Geisterfahrer sind sehr entgegenkommend.";
msg[12] = "Bei uns kann jeder werden, was er will, ob er will oder nicht.";
msg[13] = "Alle Menschen sind gleich ! Mir jedenfalls.";
msg[14] = "Er war Mathematiker. Aber sie war unberechenbar.";
msg[15] = "In Wirklichkeit ist die Realität ganz anders.";
msg[16] = "Was tut man nicht alles, wenn man nichts zu tun hat !";
msg[17] = "Lieber Hydrokultur als gar keine Bildung !";
msg[18] = "95 % aller Computerprobleme befinden sich zwischen Tastatur und Stuhl.";
msg[19] = "Wer gegen ein Minimum Aluminium immun ist, besitzt Aluminiumminimumimmunität.";
msg[20] = "Im Falle eines Falles ist richtig fallen alles.";
msg[21] = "Geht die Sonne auf im Westen, musst Du Deinen Kompass testen !";
msg[22] = "Verflucht, sagte die Giftschlange, als sie sich auf die Zunge biss ...";
msg[23] = "Liebe macht blind. Aber wer verheiratet ist, kann plötzlich wieder sehen.";
msg[24] = "Es wird schon schiefgehen, sagte der Turmbauer von Pisa.";
msg[25] = "Die Pflicht ruft ? Wir rufen zurück !";
msg[26] = "Das Leben ist wie Zeichnen - aber ohne Radiergummi.";
msg[27] = "Einmal dachte ich, ich hätte unrecht. Aber ich hatte mich ausnahmsweise getäuscht.";
msg[28] = "Jetzt sind die guten alten Zeiten, nach denen wir uns in zehn Jahren zurücksehnen.";
msg[29] = "Sprächen die Menschen nur von Dingen, von denen sie etwas verstehen, die Stille wäre unerträglich.";
msg[30] = "Denke niemals an die Zukunft. Sie kommt früh genug.";
msg[31] = "Politiker sind nicht an Weisungen gebunden, höchstens an Überweisungen.";

function Tip_des_Tages() {
document.write(msg[today]);
}

//-->
</script>

Zufallsspruch mit Javascrip


<script>
<!--
var quotenumber = 4 ;
var randomnumber = Math.random() ;
var rand1 = Math.round( (quotenumber-1) * randomnumber) + 1 ;
quotes = new Array
quotes[1] = "Der Klügere gibt nach! Eine traurige Wahrheit, sie begründet die Weltherrschaft der Dummheit. [Marie von Ebner-Eschenbach]"
quotes[2] = "Ich glaube, der Weltmarkt hat Raum für fünf Computer - nicht mehr. [Thomas J. Watson, Vorstandsvorsitzender von IBM 1943]"
quotes[3] = "Nobody will ever need more than 640k RAM! [Bill Gates 1981]"
quotes[4] = "Windows 95 needs at least 8MB RAM [Bill Gates 1996]"
var quote = quotes[rand1]
document.write("Nr. " + rand1 + " von " + quotenumber + "<br />" + quote);
//-->
</script>

Dieses Script am besten in eine externe JS-Datei (z.B. zitat.js) speichern diese dann in die Seite einbinden mit

<script src="zitat.js" type="text/javascript"></script>

Verlinkbarer Lauftext mit Javascrip


<head>
<script>
<!--
   descript = new Array("+ + + Nachrichten aus Rosenheim + + +",
      "+ + + Nachrichten von sueddeutsche.de + + +",
      "+ + + Fernsehsendungen und Programme + + +",
      "+ + + Neuigkeiten rund um die CeBIT + + +",
      "+ + + M-Soung, die Party- und Oktoberfestband + + +");

   links = new Array("http://www.ovb-online.de",
      "http://www.sueddeutsche.de",
      "http://www.tvinfo.de",
      "http://www.cebit.de",
      "https://www.band-magicsound.de");

function news(faktor,text)
   {if (text < descript.length)
   {if (faktor < descript[text].length+1)

      In eine Zeile ohne Umbruch!
      {ausg = descript[text].substring(0,faktor) + "" + " <a href='#'
      target='_blank' id='link'>[ Link ]</a>";

      ticker.style.color = "#a2a2a2";
      ticker.innerHTML = ausg;
      link.href = links[text];
      faktor2 = faktor + 1;
      text2 = text;
      setTimeout("news(faktor2,text2)",50);}
   else
     {ticker.style.color = "#232323";
      l = descript[text].length;
      setTimeout("goback(1,text2,l)",3500);};}
   else
      {setTimeout("news(1,0)",2000);};}

function goback(faktor,text,l)
   {if (l > 1)
      {laenge = descript[text].length - faktor;
      ausg = descript[text].substring(0,laenge) + "";
      ticker.innerHTML = ausg;
      faktor2 = faktor + 1;
      text2 = text;
      setTimeout("goback(faktor2,text2,laenge)",10);}
   else
      {text2 = text + 1;
      news(1,text2);};}
// -->
</script>

<style>
   #ticker {
      text-align: left;
      font-size: 1.5em;
      font-family: ariel;
   }

   a:link, a:visited, a:active {
      color: #007bdf;
      text-decoration: none;
   }

   a:hover {
      color: #c10000;
   }
</style>

</head>

<body onLoad="news(1,0)" text="#000000" bgcolor="#ffffff">
  <p id="ticker">Ein Fehler ist aufgetreten...</p>

Verlinkbarer Textticker mit Javascript


<script>>
<!--
var msg=new Array()
msg[0]="+ + + Nachrichten aus Rosenheim + + +"
msg[1]="+ + + Nachrichten von sueddeutsche.de + + +"
msg[2]="+ + + Fernsehsendungen und Programme + + +"
msg[3]="+ + + Neuigkeiten rund um die CeBIT + + +"
msg[4]="+ + + M-Soung, die Party- und Oktoberfestband + + +"

// Links in Array: URL/Pfad oder kein Link = "#"
var msglink=new Array()
msglink[0]="http://www.ovb-online.de/"
msglink[1]="http://www.sueddeutsche.de/"
msglink[2]="http://www.tvinfo.de/"
msglink[3]="http://www.cebit.de/homepage_d?x=1"
msglink[4]="https://www.band-magicsound.de/"

// Link öffnen als: "_blank", "_self", "_top" oder in einem Frame (Framename)
// Kein Link = ""
var linktarget=new Array()
linktarget[0]="_blank"
linktarget[1]="_blank"
linktarget[2]="_blank"
linktarget[3]="_blank"
linktarget[4]=""

// Schriftart
var msgfont="Arial"

// Schriftfarbe
var msgfontcolor="#454545"

// Farbe des Links, bei Beruehrung mit dem Mauszeiger
var msgfontcolorrollover="c10000"

// Schriftgröße
var msgfontsize=10

// sSchriftgröße für Netscape 4x
var msgfontsizeHTML=2

// Hintergrundfarbe der Textbox
var msgbgcolor="#ffffff"

// Hintergrundfarbe der Textbox ausgeblendet
var msgbgout="#ffffff"

// Schriftstärke: normal oder bold
var msgweight="nomal"

// Schriftstil: normal oder italic
var msgitalic="normal"

// Länge der Textbox in Pixel
var msgwidth=550

// Höhe der Textbox in Pixel
var msgheight=26

// Pause zwischhen angezeigtem Text in Sekunden
var msgpause=3

// Rahmenstärke der Textbox
var msgborder=1

// Rahmenfarbe
var msgbordercolor="#c0c0c0"

// Textausrichtung: center, left oder right
var msgalign="center"

// Vertivale Textausrichtung: middle, top oder bottom
var msgvalign="middle"

var textdecoration="none"
var textWeightA="<b>"
var textWeightB="</b>"
var textItalicA=""
var textItalicB=""
var transparenz=100
var transparenzschritt=2

var x_pos=0
var y_pos=0
var i_msg=0
var msgsplit=""
var i_msgsplit=0
var i_mark=0
var tickerinhalt
var pausefade=30
msgpause*=1000

var loopende=false
var browserinfos=navigator.userAgent
var ie=document.all&&!browserinfos.match(/Opera/)
var ns4=document.layers

In eine Zeile ohne Umbruch!
var ns6=document.getElementById&&!document.all&&!browserinfos.match(/Opera/)
var opera=browserinfos.match(/Opera/)
var browserok=ie||ns4||ns6||opera

function inhaltswechsel() {
   browserTyp()
   i_msg++
   if (i_msg>=msg.length) {i_msg=0}
   if (ie) {
      ticker.innerHTML=inhalt
      ausblenden()
   }
   if (opera || ns6) {
      document.getElementById('ticker').innerHTML=inhalt
      var msgtimer=setTimeout("inhaltswechsel()",2*msgpause)
   }
   if (ns4) {
      document.roof.document.ticker.document.write(inhalt)
      document.roof.document.ticker.document.close()
      var msgtimer=setTimeout("inhaltswechsel()",msgpause)
   }
}

function einblenden() {
   if (transparenz<100){
      transparenz+=transparenzschritt
   if (ie) {
      document.all.tickerbg.filters.alpha.opacity=transparenz
   }
      var fadetimer=setTimeout("einblenden()",pausefade)
   }
   else {
      clearTimeout(fadetimer)
      setTimeout("inhaltswechsel()",1000)
   }
}

function ausblenden() {
   if (transparenz>0){
      transparenz-=transparenzschritt
      if (ie) {
         document.all.tickerbg.filters.alpha.opacity=transparenz
      }
      if (ns6) {
         document.getElementById('tickerbg').style.MozOpacity=transparenz/100
      }
      var fadetimer=setTimeout("ausblenden()",pausefade)
        }
      else {
         clearTimeout(fadetimer)
         setTimeout("einblenden()",msgpause)
      }
}

browserTyp()
function browserTyp() {
   if (ie || opera) {
      var tablewidth=msgwidth-2*msgborder
      var tableheight=msgheight-2*msgborder
   }
   else {
      var tablewidth=msgwidth
      var tableheight=msgheight
   }
   if (ie || ns6) {
      var padding=parseInt(msgborder)+3

      In eine Zeile ohne Umbruch!
      inhalt="<table width="+tablewidth+" height="+tableheight+"
      cellpadding="+padding+" cellspacing=0 border=0><tr
      valign="+msgvalign+"><td align="+msgalign+">"

      In eine Zeile ohne Umbruch!
      inhalt+="<a href=\""+msglink[i_msg]+"\" target=\""+linktarget[i_msg]+"\"
      style=\"position:relative;font-family:\'"+msgfont+"\';font-size:"+
      msgfontsize+"pt;font-weight:"+msgweight+";text-decoration:"+
      textdecoration+";color:"+msgfontcolor+";font-style:"+msgitalic+";
      \" onMouseOver=\"this.style.color=\'"+msgfontcolorrollover+
      "\'\" onMouseOut=\"this.style.color=\'"+msgfontcolor+"\'\">"

      inhalt+=msg[i_msg]
      inhalt+="</a></td></tr></table>"
   }
   else {

      In eine Zeile ohne Umbruch!
      inhalt="<table width="+tablewidth+" height="+tableheight+" cellpadding="+
      msgborder+" cellspacing=0><tr valign="+msgvalign+"><td align="+
      msgalign+">"

      In eine Zeile ohne Umbruch!
      inhalt+="<a href=\""+msglink[i_msg]+"\" target=\""+linktarget[i_msg]+"\"
      style=\"position:relative;font-family:\'"+msgfont+"\';font-size:"+
      msgfontsize+"pt;font-weight:"+msgweight+";text-decoration:"+
      textdecoration+";color:"+msgfontcolor+";font-style:"+msgitalic+";\">"

      inhalt+=msg[i_msg]
      inhalt+="</a></td></tr></table>"

      In eine Zeile ohne Umbruch!
      frameinhalt="<table width="+tablewidth+" height="+tableheight+"
      cellpadding=0 cellspacing=0 border="+msgborder+">lt;<tr><td>"

      frameinhalt+="<font color=\""+msgbgcolor+"\">"
      frameinhalt+="."
      frameinhalt+="</font>"
      frameinhalt+="</td></tr></table>"
   }
}

if (ie || ns6 || opera) {
   if (ns6) {
      msgwidth-=2*msgborder
      msgheight-=2*msgborder
   }

      In eine Zeile ohne Umbruch!
      document.write("<div id=\"roof\" style=\"position:relative;width:"+
      msgwidth+"px;height:"+msgheight+"px;font-family:\'"+msgfont+"\';
      border-style:solid;border-color:"+msgbordercolor+";border-width:"+
      msgborder+"px;background-color:"+msgbgcolor+";\">")

   if (!opera && !ns6 ) {

      In eine Zeile ohne Umbruch!
      document.write("<div id=\"tickerbg\" style=\"position:absolute;top:"+
      -msgborder+"px;left:"+-msgborder+"px;width:"+msgwidth+"px;height:"+
      msgheight+"px;font-family:\'"+msgfont+"\';font-size:"+msgfontsize+
      "pt;font-weight:"+msgweight+";font-style:"+msgitalic+";border-style:
      solid;border-color:"+msgbordercolor+";border-width:"+msgborder+
      "px;background-color:"+msgbgout+";overflow:hidden\;filter:
      alpha(opacity=100)\">")

      document.write("</div>")
   }

      In eine Zeile ohne Umbruch!
      document.write("<div id=\"ticker\" style=\"position:absolute;top:"+
      -msgborder+"px;left:"+-msgborder+"px;width:"+msgwidth+"px;height:"+
      msgheight+"px;font-family:\'"+msgfont+"\';font-size:"+msgfontsize+
      "pt;font-weight:"+msgweight+";font-style:"+msgitalic+";border-style:
      solid;border-color:"+msgbordercolor+";border-width:"+msgborder+
      "px;overflow:hidden\;\">")

      document.write("</div></div>")

      window.onload=inhaltswechsel
}

else if (ns4) {

     In eine Zeile ohne Umbruch!
     document.write("<ilayer name=\"roof\" width="+msgwidth+
     " height="+msgheight+">")

     In eine Zeile ohne Umbruch!
     document.write("<layer name=\"tickerframe\" width="+msgwidth+
     " height="+msgheight+" top=0 left=0 bgcolor="+msgbgcolor+">")

     document.write(frameinhalt)
     document.write("</layer>")

     In eine Zeile ohne Umbruch!
     document.write("<layer name=\"ticker\" width="+msgwidth+
     " height="+msgheight+" top=0 left=0>")

     document.write()
     document.write("</layer>")
     document.write("</ilayer>")
     window.onload=inhaltswechsel
}
// -->
<script>>

Automatisches Änderungsdatum mit Javascript


<body>

<script type="text/javascript">

In eine Zeile ohne Umbruch!
var Wochentage = new Array("Sonntag","Montag","Dienstag","Mittwoch",
"Donnerstag","Freitag","Samstag");

 In eine Zeile ohne Umbruch!
 var Monate = new Array("Januar", "Februar", "März","April","Mai","Juni",
 "Juli","August","September","Oktober","November","Dezember");

 var Updated = new Date(document.lastModified);
 var Wochentag = Wochentage[Updated.getDay()];
 var Monat = Monate[Updated.getMonth()];
 var Tag = Updated.getDate();
 var Jahr = Updated.getFullYear();
 var Stunde = Updated.getHours();
 var Minute = Updated.getMinutes();
if (Tag < 10) Tag = "0" + Tag;
if (Minute < 10) Minute = "0" + Minute;

var UpdateText="<strong>Letzte Aktualisierung:</strong> " + "<br />" +
Wochentag + ", " + Tag + ". " + Monat + " " + Jahr +
" um " + Stunde + ":" + Minute;

document.write(UpdateText);

</script>

</body>

Javascript-Demos

LETZTE AKTUALISIERUNG
VERLINKBARE LAUFSCHRIFT
VERLINKBARER TEXTTICKER
ZUFALLSSPUCH
GEDICHT DES MONATS

Monatsspruch mit Javascript


<head>

<script>
<!-

// Einleitungstext
var Einleitung = "Gedicht für den Monat ";

// Liste der Monatsnamen
var MonatsName = new Array
(
  " Januar",
  " Februar",
  " März",
  " April",
  " Mai",
  " Juni",
  " Juli",
  " August",
  " September",
  " Oktober",
  " November",
  " Dezember"
);

// Liste der URLs und des MouseOver-Textes
// unbedingt 3 x 12 Einträge notieren, Wiederholungen sind erlaubt

// Liste 1 URL
// Liste 2 MouseOver-Text
// Liste 3 URL für Banner (Kann auch leer bleiben)

Liste = new Array()

// 1
Liste[Liste.length]="januar.html",
Liste[Liste.length]="",
Liste[Liste.length]="images/jan.jpg",

// 2
Liste[Liste.length]="februar.html",
Liste[Liste.length]="",
Liste[Liste.length]="images/feb.jpg",

// 3
Liste[Liste.length]="maerz.html",
Liste[Liste.length]="",
Liste[Liste.length]="images/mrz.jpg",

// 4
Liste[Liste.length]="april.html",
Liste[Liste.length]="",
Liste[Liste.length]="images/apr.jpg",

// 5
Liste[Liste.length]="mai.html",
Liste[Liste.length]="",
Liste[Liste.length]="images/mai.jpg",

// 6
Liste[Liste.length]="juni.html",
Liste[Liste.length]="",
Liste[Liste.length]="images/jun.jpg",

// 7
Liste[Liste.length]="juli.html",
Liste[Liste.length]=""
Liste[Liste.length]="images/jul.jpg",

// 8
Liste[Liste.length]="august.html",
Liste[Liste.length]="",
Liste[Liste.length]="images/aug.jpg",

// 9
Liste[Liste.length]="september.html",
Liste[Liste.length]="",
Liste[Liste.length]="images/sep.jpg",


// 10
Liste[Liste.length]="oktober.html",
Liste[Liste.length]="",
Liste[Liste.length]="images/okt.jpg",

// 11
Liste[Liste.length]="november.html",
Liste[Liste.length]="",
Liste[Liste.length]="images/nov.jpg",

// 12
Liste[Liste.length]="dezember.html",
Liste[Liste.length]="",
Liste[Liste.length]="images/dez.jpg"

// Monatszahl ermitteln
DatumHeuteLink = new Date();

// Tageszahl entspricht dem Tag des Monats
var TagesZahl = DatumHeuteLink.getMonth() +1;

var ElementNr = ((TagesZahl)*3)-3;

// Testausgabe
// alert(TagesZahl + " Array-Element Nr.: " + ElementNr);

var LinkDatum =  MonatsName[DatumHeuteLink.getMonth()] + " ";

// Wenn kein Monatsname angezeigt werden soll Kommentarzeichen entfernen
// var LinkDatum = " ";

var LinkAdresse = Liste[ElementNr];

//  Zeilenumbruch in einigen Browsern
var OverText = Einleitung + LinkDatum + " von einem bedeutenden Autor\n" + Liste[ElementNr+1];

var BannerURL = Liste[ElementNr+2];

// Linkcode in die HTML-Seite schreiben
function MonatsLinkGrafik(Fenster)
{

if(Fenster == 1) {
Anzeige = "";  // Standard = _parent
} else {
Anzeige = "";  // Standard = _self
}

if(BannerURL == "") {
document.write('<a title="' + OverText + ' " target="'+Anzeige+'" href="' + LinkAdresse + '">Spruch des Monats</a>');
} else {

// Banner mit Text
// document.write('<a title="' + OverText + ' " target="'+Anzeige+'" href="' + LinkAdresse + '">Spruch des Monats <br />');
// document.write('<img title="' + OverText + '" style="vertical-align:middle;" src="' + BannerURL + '" alt="" border="0"> </a>');

// Banner ohne Text
document.write('<a title="' + OverText + ' " target="'+Anzeige+'" href="' + LinkAdresse + '">');
document.write('<img title="' + OverText + '" style="vertical-align:middle;" src="' + BannerURL + '" alt="" border="0"> </a>');

}
}

//-->
</script>

In HTML einbinden

</head>
<body>

<p style="margin: -5px; padding: -5px;">Monatsspruch</p>
<br />
<p>
<script">
<!--
MonatsLinkGrafik(1);
//-->
</script>
</p>

In HTML einbinden
</body>
</script> </p>

Responsive Tabellen

Trotz strenger Einhaltung der "@media-Regeln" für responsives Webdesign, werden Tabellen häufig in mobilen Geräten, z. B. Smartphones, nicht korrekt dargestellt. Dieses Problem entsteht meist, wenn sich zu lange Wörter im Text der Tabellenzellen befinden, so dass der Text nicht umgebrochen werden kann, weil Leerstellen fehlen. In diesem Fall werden Tabellen radikal rechts abgeschnitten.

Die einzige Lösung dafür ist, den Tabellen Rollbalken zu verpassen, um sie auf kleinen Bildschirmen horizontal scrollen zu können. Mit ein wenig CSS und einer kurzen Anweisung im HTML-Code können horizontal scrollbare Tabellen erzeugt werden.

Die folgende geniale Lösung dazu stammt von kulturbanause.de:

CSS Code

table { /* Styling der Tabelle */ }

.table-scrollable {
  width: 100%;
  overflow-y: auto;
  margin: 0 0 1em;
}

.table-scrollable::-webkit-scrollbar {
  -webkit-appearance: none;
  width: 14px;
  height: 14px;
}

.table-scrollable::-webkit-scrollbar-thumb {
  border-radius: 8px;
  border: 3px solid #fff;
  background-color: rgba(0, 0, 0, .3);
}

HTML Code

<div class="table-scrollable">
  <table>
    .....
  </table>
</div>

Komische Update-Meldung in Windows 10

Einige Einstellungen werden von Ihrer Organisation verwaltet
Nach einem Update erschien plötzlich die Meldung, dass die Einstellungen angeblich von einer eigenen Organisation verwaltet werden. Ich frage mich, welche Organisation das wohl sein soll, zumal ich als einziger privater Nutzer auch der Administrator bin.
thumb update meldung
Nur ein optischer Fehler?
Zwar handelt es sich um keinen schwerwiegenden Fehler, doch die Neugier trieb mich dazu, die Umstände zu ergründen, die für diese Meldung verantwortlich sind. In Internetforen wird als häufigste Ursache eine bestimmte Feedback-Einstellung genannt und als Lösung folgende Methode vorgeschlagen:

  • Die Tastenkombination Windows + i drücken, um die Windows-Einstellungen zu öffnen.
  • Auf die Schaltfläche Datenschutz klicken.
  • Links den Reiter Diagnose und Feedback auswählen.
  • Auf der rechten Fensterseite unter Diagnosedaten im Dropdown-Menü die Option Vollständig auswählen.
Angeblich soll der Grund für das Erscheinen des roten Schriftzugs die Option "Einfach" sein. Standardmäßig war bereits die Organisationsmeldung "Vollständig" vorgegeben. Egal, welche Option man aber wählt, die Meldung wird weiterhin hartnäckig ausgegeben.

Konflikt mit anderen Anwendungen?
Als weitere Ursache wird eine optionale Datenschutz-Anwendung genannt, die diese Meldung auslösen könnte. In meinem Windows 10-Betriebssystem ist keine weitere Viren- oder Datenschutz-Anwendung installiert, da ich nur das Windows Security Center verwende.

Fehlerhafte Gruppenrichtlinien?
In den Gruppenrichtlinien konnte ich auch keinen entsprechenden Eintrag finden, der, wie oft vorgeschlagen, die Windows 10 Pro Updates und Upgrades zurückstellen und aufschieben würde. Hier habe noch nie etwas verändert, also blieb mir nichts anderes übrig, als weiterzusuchen.

Lösung mit eigenen Bordmitteln
Die Lösung war einfach, denn der Link "Konfigurierte Updaterichtlinien anzeigen" unter dem roten Schriftzug, brachte mich auf die richtige Spur.
thumb update problembehandlung
In meinem Fall lag es an den Einstellungen der Nutzungszeiten, die aber korrekt angegeben wurden. Vermutlich hat sich bei einem Update die Installation etwas verhaspelt. Da ich hier nichts ändern konnte, ließ ich die Problembehandlung laufen und siehe da, die Meldung verschwand.

Die Problembehandlung, auf der rechten Seite in den Einstellungen von Windows Update, konnte mir schon öfters weiterhelfen, um Konflikte mit Updates zu lösen.