Inleiding
Het wil nog wel eens voorkomen dat er bij een bezoek aan een website
met een SSL certificaat de browser waarschuwt voor onbeveiligde items.
Dit wordt veroorzaakt door elementen die via http:// geladen worden in
plaats van via https://. Onderstaand een aantal oplossingen.
Website aanpassen
Door ervoor te zorgen dat alle content van de website beveiligd wordt aangeleverd is het probleem aan de serverzijde helemaal te verhelpen. Om dit te realiseren moeten de HTTPS pagina's alleen beveiligde URL's bevatten. Dit kan als volgt:
Deze handleiding beschrijft het traceren van Mixed Content via Firefox en Chrome.
JavaScript als oorzaak
Deze meldingen kunnen ook veroorzaakt worden door stukjes JavaScript, waar een veelgebruikte techniek dit probleem veroorzaakt:
// Veroorzaakt foutmelding over gemengde inhoud in IE
document.write("<script id="__ie_onload" src="javascript:void(0)"></script>");
document.getElementById("__ie_onload").onreadystatechange = function()
{
if (this.readyState == "complete") domReady();
};
Dit is een workaround die gebruikt wordt om een DOMContentLoaded gebeurtenis te emuleren binnen IE. De foutmelding komt doordat het javascript: protocol wordt gebruikt, ondanks dat er geen download plaatsvindt.
Om dit te herstellen dient men //: te gebruiken in het src-attribuut op dezelfde wijze als bijvoorbeeld jQuery en prototype. Dit geeft wel een (onschuldige) foutmelding in HttpWatch, maar verhelpt de foutmelding over gemengde inhoud:
// Verhelpt foutmelding over gemengde inhoud in IE
document.write("<script id="__ie_onload" src="//:"></script>");
document.getElementById("__ie_onload").onreadystatechange = function()
{
if (this.readyState == "complete") domReady();
};