Problemen met websites

— under reconstruction —

Introduction

On the right you see the list of websites discussed on this page. These are sites that are not rendered correctly in Opera or that block Opera users. The fixes provided here make use of UserJS, UserCSS, or site-specific preferences. The explanation of each case is written in either English or Dutch, depending on the language of the website in question.

Besproken websites

Test

Toelichting

Er zijn sites die niet goed of zelfs helemaal niet in Opera werken. In de meeste gevallen is dit te wijten aan browser sniffing, dat wil zeggen het gebruik van scripts om de browser van de bezoeker te herkennen en daarop de pagina-inhoud aan te passen. Er zijn soms goede redenen waarom een webmaster onderscheid tussen browsers zou willen maken.

Helaas is Opera echter vaak het slachtoffer van scripts die Opera simpelweg de toegang tot een site weigeren, bijvoorbeeld omdat de webmaster de pagina niet in Opera wilde testen, omdat hij een oud probleem in Opera kende en niet gecontroleerd heeft of het inmiddels is opgelost, of omdat het script door derden is geleverd (vaak het geval bij navigatiemenu's). Meestal is het echter helemaal niet nodig is om Opera te blokkeren.

In Opera 8 zijn enkele technieken geïntroduceerd die het mogelijk maken om dit soort problemen aan te pakken. Opera 9 heeft deze technieken gebruikersvriendelijker gemaakt, zodat het gemakkelijker wordt om oplossingen in werking te stellen.

Met individuele voorkeuren voor websites kunnen bepaalde instellingen van Opera worden veranderd voor geselecteerde pagina's. Hiermee kun je bijvoorbeeld Opera zich laten voordoen als een andere browser (IE of Mozilla) om browserdiscrimatie te omzeilen.

UserJS en UserCSS maken het mogelijk om de structuur, inhoud en vormgeving van een website voor, tijdens of na het laden van de pagina te veranderen.

Deze pagina bespreekt een aantal probleemsites (zie lijst hierboven) en biedt oplossingen om ze in Opera aan het werk te krijgen. Hieronder volgt eerst meer uitleg over individuele voorkeuren, UserJS en UserCSS.

Instructies ua.ini

Ua.ini is een bestand dat zich in de Opera-map bevindt (Engels: Opera directory; zie de informatiepagina). De structuur is als volgt:

Opera Preferences version 2.0
; Do not edit this file while Opera is running
; This file is stored in UTF-8 encoding

[Identity]
www.opera.com=1
...

Het bestand wordt geregeld automatisch aangevuld met sites die aan het Opera-team zijn gemeld (zie het menu Help), maar het is ook mogelijk om handmatig adressen aan de lijst toe te voegen (bijvoorbeeld www.heineken.nl=4). Het is belangrijk om alleen wijzigingen aan het bestand aan te brengen wanneer Opera gesloten is.

De cijfers geven aan als welke browser Opera zich moet voordoen om browser sniffers voor de gek te houden. Het kan zich identificeren als Internet Explorer of als Mozilla volgens het volgende schema:

  1. standaard, gebruikt de identificatie die is gekozen in Snelvoorkeuren (druk op F12)
  2. identificeert zich als Opera 8
  3. identificeert zich als Mozilla 5.0
  4. identificeert zich als Internet Explorer 6.0
  5. identificeert zich als Mozilla en verbergt Opera volledig
  6. identificeert zich als Internet Explorer en verbergt Opera volledig

De beste tactiek om een site te repareren is om beurtelings te proberen of de identificatie-opties in Snelvoorkeuren (F12) soelaas bieden. (Let op: na elke wijziging van de identificatie moet de webpagina natuurlijk herladen worden (F5).) Als dat zo is, dan kan de keuze worden vastgelegd in ua.ini met behulp van de overeenkomstige nummers 1, 2 of 3 (vergeet niet Opera eerst te sluiten). Was geen van deze opties afdoende, dan kun je in ua.ini de nummers 4 en 5 nog proberen; de laatste twee mogelijkheden kunnen dus niet in de Snelvoorkeuren worden geselecteerd.

Instructies UserJS

UserJS biedt de mogelijkheid om scripts aan websites toe te voegen op van tevoren gekozen momenten, bijvoorbeeld wanneer een pagina volledig geladen is of wanneer het op het punt staat een eigen script uit te voeren. Op deze manier is het mogelijk browser sniffers te "onderscheppen" en onschadelijk te maken.

De details worden in Opera's handleiding besproken. Een site met een collectie zeer nuttige UserJS-scripts is userjs.org (zie ook het kleine overzicht links).

Om UserJS te activeren moet je in Voorkeuren (Preferences, CTRL+F12) > Geavanceerd (Advanced) > Inhoud (Content) op de knop 'Javascript opties...' ('JavaScript options...') klikken en vervolgens in het invoervak een map invullen waar de scripts zullen worden opgeslagen. Opera moet dan opnieuw opgestart worden om voortaan alle scripts in die map automatisch uit te voeren wanneer er een nieuwe pagina wordt geopend.

De reparatiescripts die op deze pagina worden aangeboden, kunnen dus rechtstreeks in die map worden opgeslagen en treden dan gelijk in werking. Bedenk wel dat JavaScript ook oneigenlijk kan worden gebruikt en dus gevaarlijk kan zijn als het van een onbetrouwbare bron wordt verkregen. Gebruik daarom alleen scripts van derden als je het script zelf begrijpt of als de bron betrouwbaar is!

BrowserJS

Opera heeft een "eigen" UserJS-bestand dat wekelijks wordt bijwerkt en tot doel heeft om veelbezochte websites te repareren. Het werkt volgens dezelfde principes als elk ander UserJS-bestand, maar het is niet de bedoeling dat gebruikers er wijzigingen in aanbrengen. Vandaar de naam browser.js. Je kunt het vinden in je profile-map.

NOS Headlines

2006-10-22 • Op de hoofdpagina van NOS Headlines vallen de nieuwsberichtjes buiten hun kader, waardoor de pagina onoverzichtelijk wordt.

Oplossing

Download het JavaScript-bestand en sla het op in de UserJS-map of download de stylesheet en sla het op in de UserCSS-map.

Uitgebreide probleembeschrijving

Het script dat compatibiliteitsproblemen tussen browsers probeert weg te werken, laat Opera een aantal extra elementen aanmaken om het effect van ronde hoeken (zoals in Mozilla) na te bootsen. Opera krijgt echter geen instructies om deze elementen op een bepaalde manier weer te geven, zoals Internet Explorer. Dit kan op twee manieren worden hersteld: voorkom dat de extra elementen worden aangemaakt (dat is wat het script doet), of geef die elementen weer zoals bedoeld (dat is wat het UserCSS-bestand probeert te doen).
(Meer informatie op my.opera.com)

Trouw

Was er bij de vorige versie van de website van dagblad Trouw nog sprake van bewuste uitsluiting van Opera, in het nieuwe ontwerp werkt het navigatiemenu niet door een fout in de browser. Ik heb begrepen dat deze fout hersteld is in de eerste officiële Opera-versie die na 8.50 zal verschijnen, dus de hieronder gepresenteerde oplossing is alleen nodig voor gebruikers van Opera 8.0, 8.01, 8.02 of 8.50.

Oplossing

Download het JavaScript-bestand en sla het op in de UserJS-map.

Uitgebreide probleembeschrijving

De functie menu(action), die ervoor zorgt dat de navigatiebalk zichtbaar is en wisselt tussen de korte en de complete versie, verandert de eigenschappen visibility en display van een aantal <div>s. Opera negeert deze veranderingen omdat het de CSS-code specifieker vindt (en dus voorrang geeft):

#menu_wrapper #closed_menu,
#menu_wrapper #opened_menu {
  display: none;
  visibility: hidden;
}

Hoewel Opera in dit geval in de fout gaat, had Trouw had deze problemen kunnen voorkomen door #menu_wrapper uit bovenstaande code te schrappen. Het hierboven geleverde script dwingt Opera de regels uit menu(action) toe te passen door er het predikaat !important aan toe te voegen.

Nuon

Nuon heeft zo te zien geen energie gestoken in het testen van de websites van het bedrijf (in het bijzonder nuon.nl en nuon.com) in andere browsers dan Internet Explorer. De navigatiebalk onder aan het scherm is gedeeltelijk onzichtbaar en de contactpagina ziet er (zacht uitgedrukt) een beetje rommelig uit. Overigens treedt dit laatste probleem ook in Firefox op.

Oplossing

Download het JavaScript-bestand en sla het op in de UserJS-map.

Uitgebreide probleembeschrijving

De pagina's bestaan uit ten minste twee delen of frames. Het laatste frame is de navigatiebalk en bevat onder andere een formulier (<form>), waarvan de (standaard)marges te groot zijn in Opera waardoor het zichzelf naar beneden en uit beeld drukt. Een kleine toevoeging aan de stijldeclaraties maakt dat probleem ongedaan:

#searchform { margin: 0; }

Voor de .com-site is dit nog niet voldoende; er zijn daar nog twee kleine aanvullingen op de CSS nodig om het euvel te verhelpen.

Bij de contactpagina is juist een overvloed aan CSS het probleem. Het is een raadsel waarom de cellen van de tabellen op die pagina de eigenschap float hebben gekregen, maar het gevolg is wat je in Opera ziet. Het probleem is verholpen zodra die eigenaardigheden zijn verwijderd:

<td style=" (...) float:left; (...)" class="tablecell">
(...)
<td style=" (...) float:right; (...)" class="tablecell">

Winkelen bij Albert

De site van Albert (de bezorgservice van Albert Heijn en andere Ahold-winkels) wijst Opera-gebruikers de deur, omdat ze een browser gebruiken die kennelijk "helaas niet geschikt" is. Wanneer je met een trucje toch langs de uitsmijter komt, blijkt er niet zoveel bijzonders met de site aan de hand te zijn... in ieder geval niets waarom Opera niet binnen zou mogen.

Oplossing

Download het JavaScript-bestand en sla het op in de UserJS-map of gebruik de volgende regel in ua.ini:

www.albert.nl=2

Uitgebreide probleembeschrijving

De browser sniffer herkent alleen Internet Explorer, Mozilla en Netscape. Andere browsers worden gekwalificeerd als Unknown 0.0, en die wordt ongeschikt geacht voor gebruik van de website. Deze aanname is - zoals in zovele andere gevallen - op niets anders dan de naam van de browser gebaseerd.

OBOY's navigation menu

2006-01-28 • Oboy.de have redesigned their site; the problem with the previous website is no longer present.

Show/hide case

OBOY is an online store offering "exclusive fashion for men". If "exclusive" means that it is not for Opera users, then that explains why the navigation menu, without which it is very hard to browse OBOY's catalog, does not appear in this browser. Of course, it is a broken browser sniffer that is causing the annoyance.

Solution

Download the JavaScript file and save it in your UserJS folder.

Problem analysis

The script that creates the menu first tests for support of document.getElementById:

var DomYes=document.getElementById?1:0;

Then it tries to identify the visitor's browser — note that it also looks for Opera and even specifically for older versions (6 and older). So far it looks like Opera will be treated decently.

var NavYes=AgntUsr.indexOf('mozilla')!=-1&&AgntUsr.indexOf('compatible')==-1?1:0;
var ExpYes=AgntUsr.indexOf('msie')!=-1?1:0;
var Opr=AgntUsr.indexOf('opera')!=-1?1:0;
var Opr6orless=window.opera && navigator.userAgent.search(/opera.[1-6]/i)!=-1

It gets a bit suspicious when two additional variables are declared for Mozilla and IE that totally ignore Opera:

var DomNav=DomYes&&NavYes?1:0;
var DomExp=DomYes&&ExpYes?1:0;

Perhaps it helps if we can "convince" the script that Opera is a Mozilla browser. That's exactly what the UserJS file does and the results are as expected.

Sony USA navigation menu

2005-08-01 • Sony have updated their Ultimate Dropdown Menu to version 4.42 and now support Opera 8.x.

Show/hide case

The navigation menu used by Sony USA is an Ultimate Dropdown Menu (UDM). Unfortunately, they have not upgraded the scripts to (at least) version 4.4 (available since January 2005), which supports Opera 8. Until they do, Opera users will have to cope with a page lay-out that looks as if User Mode was enabled or get the following UserJS file that does the Sony webmaster's job.

Solution

Download the JavaScript file and save it in your UserJS folder.

Problem analysis

Opera 8 is not recognized by the UDM scripts (version 4.301). First, any browser supporting window.opera is incorrectly identified as Opera 7. Then the menu tries to find out what the minor browser version number is.

um.o7=(um.d&&typeof window.opera!=um.un);um.o75=0;um.o73=0;um.o71=0;if(um.o7){um.ov=um.u;um.ov=um.ov.split(/opera[\/ ]7./);um.ov=um.pi(um.ov[1].charAt(0));um.o75=(um.ov>=5);um.o73=(um.ov>=3);um.o71=(um.ov<=1);}

Of course, the minor version numbers of Opera 8 do not continue the sequence of version 7. Therefore, UDM's author Brothercake has inserted some extra code into the script to identify Opera 8 as a newer program than Opera 7.

um.o7=(um.d&&typeof window.opera!=um.un);um.o75=0;um.o73=0;um.o71=0;if(um.o7){um.ova=um.pi(um.u.split(/opera[\/ ]/)[1].match(/[7-9]/)[0]);um.ovi=um.pi(um.u.split(/opera[\/ ][7-9]\./)[1].match(/^[0-9]/)[0]);um.o75=(um.ova>=8||um.ovi>=5);um.o73=(um.ova>=8||um.ovi>=3);um.o71=(um.ova==7&&um.ovi<=1);}

The UserJS file above does almost the same thing, but saves Opera the trouble of finding its own version number (as only Opera 8 has UserJS).

Opera Today

2005-09-27 • Opera Today has been redesigned; the display problems have disappeared.

Show/hide case

Opera Today is not related to the browser &mdash this site is about music. Unfortunately, the articles do not show up in Opera (the browser); only the left and right columns (with ads) are displayed. I wonder how many people are interested in viewing advertisements only...

Solution

Download the JavaScript file and save it in your UserJS folder.

Problem analysis

This time the fault is not the webmaster's, unless you want to blame him for using an external script that breaks his own code. The right column contains a reference to Altavista's Babelfish translation service:

<script type="text/javascript" language="JavaScript1.2" src="http://www.altavista.com/help/free/inc_translate"></script>

This should put a fairly small translation box in the right column of Opera Today's pages, but that box "eats" all subsequent HTML code, probably due to scripting errors. The UserJS file prevents the script from running and so in fact blocks an ad. If the user is forced to choose between the actual page content and an ad, the ad has to die.

(My Opera Forums discussion)

Sixca

2005-05-16 • Problem on sixca.com fixed by webmaster.

Show/hide case

Sixca's website appears to be inexistent if you are using Opera. All you get when visiting this “Electronics Magazine Online” is a blank page. Is the page still under development? No, they just refuse to serve any content to Opera. Another browser sniffer that doesn't serve any purpose. Sigh.

Solution

Download the JavaScript file and save it in your UserJS folder.

Problem analysis

The browser sniffer is included in the main page's (and other pages') code, but is unreadable at first:

<SCRIPT LANGUAGE="JavaScript"><!--
hp_d00(unescape("%3C%53%43%52%49%50%54%20%4C%41%4E%47%55%41%47%45%...
</script>

When decoded, the most interesting part reads:

if(navigator.userAgent.indexOf('Opera')!=-1)window.location="about:blank";

The UserJS file offered above replaces Opera in the script by Oprah, thus creating a new rule that does not affect Opera: “If the browser is called Oprah, go to an empty page”.

(My Opera Forums discussion)

Fincantieri

De Italiaanse scheepsbouwers en -ontwerpers Fincantieri laten Opera-gebruikers niet toe tot hun site. De foutmelding voor de ongewenste bezoekers luidt: “Stai usando MSIE 3 o NetScape 3. Per una corretta visualizzazione di queste pagine ti consigliamo la versione 4 o successiva”. Vrij vertaald: “We hebben geen idee waar we het over hebben”.

Oplossing

Download het JavaScript-bestand en sla het op in de UserJS-map.

Uitgebreide probleembeschrijving

Het is duidelijk dat de site een zeer verouderde browser sniffer gebruikt - misschien wel één van tien jaar oud. Ik heb het script zelf niet gevonden, maar het feit dat alles dat niet IE of Netscape versie 4 of hoger is nota bene als IE/Netscape 3 wordt bestempeld, geeft wel aan dat de webmaster niet met z'n tijd is meegegaan.

(Discussie op My Opera Forums; dit script is ook beschikbaar op userjs.org)

Schouwburg De Meerse

2005-11-06 • Schouwburg De Meerse heeft zijn website vernieuwd. Daarin treden geen problemen op voor Opera-gebruikers.

Casus tonen/verbergen

Schouwburg De Meerse heeft een nogal kunstzinnige website. Als de paginatekst te lang is voor het scherm, worden de standaard schuifbalken vervangen door een eigen scrollmechanisme. Helaas werkt het niet in Opera. Als Opera zich als Internet Explorer voordoet, werkt het enigszins maar nog altijd niet voldoende. UserJS moet de ouderwetse schuifbalken dan maar weer in ere herstellen.

Oplossing

Download het JavaScript-bestand en sla het op in de UserJS-map.

Uitgebreide probleembeschrijving

Eerlijk gezegd weet ik niet precies waar het probleem voor Opera zit. Er is weliswaar een redelijk onschuldige browser sniffer op dat domein actief, maar die sluit Opera niet buiten. Aangezien UserJS de site weer bruikbaar maakt, zal ik niet opnieuw in de codes duiken.

Centraal Beheer

De entreepagina van Centraal Beheer zegt dat Opera niet ondersteund wordt. Dat is een vreemde waarschuwing voor een website die geen enkel probleem voor deze browser oplevert. De browser sniffer is dan ook erg primitief - van dik hout zaagt men planken. Waarom zouden we dan zo'n waarschuwing moeten tolereren?

Oplossing

Download het JavaScript-bestand en sla het op in de UserJS-map.

Uitgebreide probleembeschrijving

De browser sniffer wordt aangeroepen wanneer de eerste pagina is geladen:

<body onLoad="MM_checkBrowser(4.0,1,2,4.0,1,2,2,'home.htm','ondersteuning.htm'); return document.MM_returnValue">

Vervolgens zorgt het script ervoor dat alleen Internet Explorer en Netscape naar de hoofdpagina doorstromen:

function MM_checkBrowser(NSvers,NSpass,NSnoPass,IEvers,IEpass,IEnoPass,OBpass,URL,altURL) { //v4.0
  var newURL='', verStr=navigator.appVersion,
  app=navigator.appName, version=parseFloat(verStr);
  if (app.indexOf('Netscape')!=-1) {
    if (version>=NSvers){if (NSpass>0) newURL=(NSpass==1)?URL:altURL;}
    else {if (NSnoPass>0) newURL=(NSnoPass==1)?URL:altURL;}
  } else if (app.indexOf('Microsoft')!=-1) {
    if (version>=IEvers || verStr.indexOf(IEvers)!=-1)
      {if (IEpass>0) newURL=(IEpass==1)?URL:altURL;}
    else {if (IEnoPass>0) newURL=(IEnoPass==1)?URL:altURL;}
  } else if (OBpass>0) newURL=(OBpass==1)?URL:altURL;
  if (newURL) {window.location=unescape(newURL); document.MM_returnValue=false;}
}

Het corrigerende script zorgt ervoor dat de variabele OBpass (Opera Browser pass?) de waarde 1 krijgt, waardoor de rest van de site zonder problemen bereikbaar wordt.

Leidsch Dagblad etc.

2005-10-30 • De websites van enkele regionale dagbladen, waaronder het Leidsch Dagblad, de Gooi- en Eemlander, het Dagblad van het Noorden en het Limburgs Dagblad, en andere gerelateerde bedrijven weigeren Opera-gebruikers de toegang. Het script dat op deze site als oplossing wordt aangeboden is door Opera in gewijzigde vorm in browser.js opgenomen, waardoor bezoekers geen problemen meer ondervinden. Dat wil overigens niet zeggen dat de beheerders van die sites niet eens kritisch naar hun gebruik van browser sniffers zouden moeten kijken.

Casus tonen/verbergen

Het Leidsch Dagblad en het Haarlems Dagblad zijn beide onderdeel van uitgever HDC Media, dat op zijn beurt bij de Telegraaf Media Groep NV hoort. De sites van deze organisaties geven alle een waarschuwing aan Opera-gebruikers dat hun browser niet geschikt is voor de site. Het is weliswaar mogelijk om dan toch verder te gaan (door pop-ups toe te staan en aan te vinken dat je geen waarschuwing meer wilt zien), maar zo'n storend en onjuist bericht kun je beter in de kiem smoren.

Andere sites die op dezelfde manier te werk gaan zijn die van het Limburgs Dagblad, de Media Groep Limburg (ook via mgl.nl), het Noordhollands Dagblad, De Gooi- en Eemlander, de IJmuider Courant, het Dagblad van het Noorden, Vakantie & Recreatie, Almere Vandaag en Autocircuit.nl.

2005-08-25. Nieuwe toevoeging aan het rijtje: de Leeuwarder Courant.
2005-09-13. Alweer één: Dagblad De Limburger.
2005-11-06. De Leeuwarder Courant kan uit deze lijst worden geschrapt.

Oplossing

Download het JavaScript-bestand en sla het op in de UserJS-map.

Uitgebreide probleembeschrijving

Het probleem wordt veroorzaakt door een simpele en overbodige browser sniffer die in sommige gevallen alleen Internet Explorer toelaat, en in andere ook Netscape- of Gecko-browsers (o.a. Firefox):

var bSupportedBrowser = (is_ie4up || is_gecko);
...
if (!bSupportedBrowser && !cookie_set) {
  popup('/NietOndersteundeBrowser/0,5388,,00.html');}

Het hierboven aangeboden script verandert de waarde van bSupportedBrowser (waarvan de betekenis voor zich spreekt) in true voor alle vermelde sites.

Baruch College

2005-08-01 • BrowserJS now fixes the menu used by Baruch College.

Show/hide case

Baruch College's website doesn't display its navigation menu in Opera. As usual, this can be blamed on a browser sniffer that is there for mysterious reasons.

Solution

Download the JavaScript file and save it in your UserJS folder. Alternatively, you can add the following line to ua.ini:

www.baruch.cuny.edu=4

Problem analysis

The script that creates the menu recognizes Opera and sets the variable that determines whether it should continue executing the necessary scripts to false. The abovementioned UserJS forces the script to change that into true. The menu will work fine then, which makes me wonder why they excluded Opera in the first place.

HM_Opera = (navigator.userAgent.indexOf("Opera")!=-1);

(...)

HM_IsMenu = !HM_Opera && !HM_IE4M && (HM_DOM || HM_NS4 || HM_IE4 || HM_Konqueror);

(...)

if(HM_IsMenu) {
  document.write("<SCR" + "IPT LANGUAGE='JavaScript1.2' SRC='/scripts/hm/HM_Arrays.js' TYPE='text/javascript'><\/SCR" + "IPT>");
  document.write("<SCR" + "IPT LANGUAGE='JavaScript1.2' SRC='/scripts/hm/HM_Script"+ HM_BrowserString +".js' TYPE='text/javascript'><\/SCR" + "IPT>");
}

Huis-Aan-Bod

Huis-aan-bod.nl is de website van woningcorporaties in Leiden en omstreken. Er treden daar drie problemen op die het moeilijk maken de site in Opera te gebruiken:

  1. De tekst van de pagina's wordt buiten beeld geplaatst zodat het lijkt alsof de pagina's leeg zijn.
  2. De inlog- en uitlog-popups worden niet geopend als Opera is ingesteld om ongewenste pop-ups te blokkeren.
  3. Het navigatiemenu werkt niet.

Oplossing

Download het JavaScript-bestand en sla het op in de UserJS-map.

Uitgebreide probleembeschrijving

Het minst vervelende probleem is dat de login-pagina en enkele andere in een nieuw venster worden geopend, maar in Opera verborgen blijven als het is ingesteld om (ongewenste) pop-ups te blokkeren. De oorzaak hiervan is dat die vensters niet direct door de gebruiker worden geopend - dan had Opera ze als gewenst kunnen herkennen - maar indirect door een script:

<body [...] onLoad="openWindow();[...]">
function openWindow(){
  newWindow= window.open("[...]","Name","WIDTH=500,HEIGHT=540,scrollbars")
  newWindow.focus()
}

Als Opera alle pop-ups accepteert (te wijzigen door op F12 te drukken) zal bovengenoemd probleem niet optreden. De oplossing met UserJS maakt dit echter niet meer nodig.

Een iets grotere ergernis is dat de eigenlijke pagina-inhoud in Opera naar beneden verschoven is, zodat de tekst buiten beeld terecht komt en een wit vlak achterlaat op de plaats waar hij had moeten staan. Dit gebeurt overigens ook in Firefox, dus kennelijk is de website alleen voor Internet Explorer geschreven. In ieder geval is het snel duidelijk dat een klein regeltje HTML in de nodeloos ingewikkelde tabellenlayout hiervoor verantwoordelijk is, namelijk:

<tr valign="bottom">

Ten slotte is voor de Opera-gebruiker meteen duidelijk dat het navigatiemenu [code] bovenaan de pagina niet werkt. De site maakt gebruik van CoolMenus (betaversie 4.05) uit februari 2002. De laatste versie van Opera die hierdoor herkend (maar niet eens volledig ondersteund) wordt is 6. Sommige pagina's van huis-aan-bod worden hierdoor moeilijk bereikbaar.

Consumentenbond

2005-11-06 • De Consumentenbond heeft de pagina om een loginnaam aan te vragen aangepast, waardoor er geen problemen meer optreden in Opera.

Casus tonen/verbergen

De pagina bedoeld om een login aan te vragen voor Consumentenbond.nl lijkt de gebruiker van Opera te willen pesten. Probeer maar eens een wachtwoord in een van de daarvoor bestemde velden in te voeren.

Oplossing

Download het JavaScript-bestand en sla het op in de UserJS-map.

Uitgebreide probleembeschrijving

De oorzaak van het probleem is lastig te vinden, maar de Consumentenbond treft geen blaam; er zit kennelijk een fout in Opera. Het gaat om een wisselwerking tussen de stijldeclaraties in het CSS-bestand, de HTML-code van de pagina (regels 423-426) en een extern script dat wordt aangeroepen:

#login #password, #login #password2 {
  display: none;
}
function set_password_def(inp, mode) {
  var def = document.forms["login"].elements[inp.name + '_def'];
  inp.style["display"] = mode ? "none" : "inline";
  def.style["display"] = mode ? "inline" : "none";
}

Een kleine aanpassing aan bovenstaande functie, namelijk de toevoeging van !important achter elke inline, herstelt de functionaliteit van de pagina. Dit is dan ook wat het hierboven aangeboden script doet.

(Discussie op My Opera Forums)

UvA Student

2005-09-13 • De beheerders van de website UvA Student hebben hun pagina aangepast zodat hij nu ook in Opera werkt.

Casus tonen/verbergen

De voorpagina van de studentensite van de Universiteit van Amsterdam bevat in Opera acht keuzelijsten, waarvan er geen enkele naar behoren werkt. Bovendien zouden het er maar vier moeten zijn. Probeer maar een bachelor, master, doctoraal of ander onderwijs te selecteren.

Oplossing

Download het JavaScript-bestand en sla het op in de UserJS-map.

Uitgebreide probleembeschrijving

Het probleem wordt veroorzaakt door onjuiste code die om mij onduidelijke redenen in Opera een tweede kolom van keuzelijsten oplevert. Aangezien de tweede kolom gebruik maakt van dezelfde id- en name-verklaringen als de eerste, kunnen de scripts die de keuzelijsten moeten vullen hun werk niet doen (ids moeten immers uniek zijn).
De eerste kolom wordt gegenereerd door scripts van de volgende vorm (regels 292-310, 411-430, 435-454 en 549-568):

<script language="JavaScript">
  if ( browser == 'explorer' || browser == 'mozilla' ) {
    document.writeln( '<select class="invoertext345" onchange="change_selectbachelors(this.options[this.selectedIndex].value, this)" name="opleidingenbachelorsselect" id="opleidingenbachelorsselect">' );
    document.writeln( '<option value="">Kies je bachelor</option>' );
  } else {...
  }
</script>

De tweede kolom komt van:

<noscript>
  <select onchange="change_selectbachelors(this.options[this.selectedIndex].value, this)" name="opleidingenbachelorsselect2 " id="opleidingenbachelorsselect2">
</noscript>

In geen van beide gevallen wordt de geopende <select>-tag weer gesloten, en dat is precies waar Opera op stukloopt. De eerlijkheid gebiedt te zeggen dat er wel een </select>-tag in de code is opgenomen, maar dat die niet op de juiste plaats staat (namelijk noch binnen het script, noch binnen het noscript).

(Discussie op My Opera Forums)

Trouw, NRC Handelsblad

De website van NRC Handelsblad (ook onderdeel van PCM Uitgevers) wordt door hetzelfde verschijnsel geplaagd als de vorige versie van Trouw: blanco pagina's wanneer je op een link klikt.
2005-09-14 • Trouw heeft inmiddels het website-ontwerp veranderd; deze kwestie speelt geen rol meer.

Trouw-casus tonen/verbergen

Op de site van dagblad Trouw werken een paar links in de navigatiekolom (aan de linkerkant) niet als de browser zich identificeert als Opera. Als je erop klikt, wordt een blanco pagina geopend. Klik bijvoorbeeld op 'columnisten' onder Opinie.

Oplossing

De gemakkelijkste oplossing is het veranderen van Opera's browseridentificatie in Internet Explorer of Mozilla (druk op F12 en selecteer de juiste optie). Een andere oplossing is het toevoegen van het volgende aan ua.ini:

www.trouw.nl=2
www.nrc.nl=2
carriere.nrc.nl=2

De derde mogelijkheid is het opslaan van een JavaScript-bestand in de UserJS-map.
De drie opties zijn even effectief en er hoeft maar één ervan te worden gekozen. De laatste twee hebben als voordeel dat zij een eenmalige aanpassing vergen om voor alle latere bezoeken aan de website te gelden. Het UserJS-bestand geldt bovendien voor alle sites van de vorm *.nrc.nl, dus niet alleen voor www.nrc.nl en carriere.nrc.nl maar ook voor andere combinaties.

Uitgebreide probleembeschrijving

De site maakt op enkele plaatsen gebruik van een script dat de browser automatisch doorverwijst naar een andere pagina. Het probleem voor Opera is dat het script slechts twee browser(familie)s kent, namelijk Internet Explorer en Mozilla:

var autoReplace = 0;
if (navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0) {
  autoReplace = 1; }
else if (navigator.userAgent && navigator.userAgent.indexOf("Mozilla")>=0) {
  if (navigator.appVersion.substring(0,1) > 2) {
    autoReplace = 1; }
}

De enige resterende mogelijkheid voor andere browsers is dat ze geen JavaScript ondersteunen of het hebben uitgeschakeld:

<NOSCRIPT><META HTTP-EQUIV="Refresh" CONTENT="5;URL=(...)"></NOSCRIPT>

Opera voldoet uiteraard aan geen van deze beschrijvingen en dus gebeurt er niets met de navigatielinks.

(Discussie op My Opera Forums)

URLs voor ua.ini

portal.omroep.nl=1 (fix niet meer nodig; lees de discussie)
radio.terra.com.br=3
www.dixons.nl=1 (fix werkt niet meer; lees de discussie)
www.heineken.nl=4
www.hilton.com=2
www.mircscripts.org=4
www.pcmuitgevers.nl=4
www.saunathermen5mei.nl=2