Tag Archives: browsers

Why Opera doesn’t work with some web sites? Part 1

Today I received a mail from a friend. Some weeks ago, he tried Opera and then contacted me, reporting some problems with the Vodafone web site. I couldn't reproduce them because a personal account was needed.

Today he got back to me, reporting another site, Adecco's. This time, no login was required, so I could dedicate some time to investigate a bit more on what was happening.

The page is the following, from the Adecco italian web site:

http://candidate.adecco.adeccoweb.com/ecit/_General/DataPages/newCandidate/candidatesearchoffers.asp?MenuSelectedLevel1=115&Selected=1

It's just a simple form, with some SELECT controls and submit button ("Cerca…").
The problem is that using Opera the submit button does not work.

So, I fired up the javascript errors window, and I saw:

JavaScript - http://candidate.adecco.adeccoweb.com/ecit/_General/DataPages/newCandidate/candidatesearchoffers.asp?MenuSelectedLevel1=115&Selected=1
Event thread: click
Error:
name: TypeError
message: Statement on line 46: Cannot convert undefined or null to Object
Backtrace:
  Line 46 of inline#2 script in http://candidate.adecco.adeccoweb.com/ecit/_General/DataPages/newCandidate/candidatesearchoffers.asp?MenuSelectedLevel1=115&Selected=1: In function multiple_TypeBusinessLines
    	for(x=0;x<obj.length;x++){
  Line 81 of inline#2 script in http://candidate.adecco.adeccoweb.com/ecit/_General/DataPages/newCandidate/candidatesearchoffers.asp?MenuSelectedLevel1=115&Selected=1: In function cmdSearch_onclick
    		vTypeBusinessLineId= multiple_TypeBusinessLines().join(gCARACTER_SINGLE_SEPARATOR);
  Line 1 of function script 
    cmdSearch_onclick();
  ...
stacktrace: n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace'

Ooook. Time to learn Dragonfly a bit more… I fired up Dragonfly, and I dug my way through the innards of this site javascript files. It turned out the "interesting" bits are here (javascript ahead):

http://candidate.adecco.adeccoweb.com/ecit/_includes/jscommonbrowser.js

If you open up this file in your text editor, you will see a getObject() function:

//-----------------------------------------------------------------------------
// getObject
//-----------------------------------------------------------------------------
//	Convierte una cadena con el nombre de un Objeto en la referencia
//	de un objeto. 
//-----------------------------------------------------------------------------
function getObject(obj) {
	var theObj;
	if (typeof obj == "string") {
		if (oBrowser.ns6 || oBrowser.ie5) {//si es Netscape6 o Explorer 5
			theObj = document.getElementById(obj);
		} else {
			if (oBrowser.ie4) {//si es Explorer 4
				theObj = document.all[obj];
			}
		}
	} else {
		theObj = obj;
	}
	return theObj;
}// getObject

So, what's wrong with this function? Who wrote this probably wrote it some years ago, because it's still testing for MSIE 4.0 or 5.0, or Netscape 6. Well, no wonder it doesn't work for Opera. Maybe it doesn't work for Safari either, nor for Chrome.

Anyway, time to fix this. How? As Hallvord said on dev.opera.com, it's probably a good idea, and this script shows it, to avoid testing for browsers. Let's test the functionality instead. We need getElementById().

What about this revised version:

function getObject(obj) {
  var theObj;
  if (typeof obj == "string") {
    if (document.getElementById)
      theObj = document.getElementById(obj);
    else if (document.all)
      theObj = document.all[obj];
  } else
    theObj = obj;
  return theObj;
}

I reported the problem through the Adecco web site contact form.
Let's hope that someone will consider it…

Dr.Dobb’s Journal and “the Broken Web”


Last week I was invited to a "Webinar" organized by Dr. Dobb's Journal about software engineering, "The Future of Software Delivery", sponsored by IBM. I was curious about this so I registered for the event.

On the registration page, there was a link to test your system to see if it met the technical requirements. So I took the test and, guess what? Only Internet Explorer and Firefox were admitted to the party.

So I wrote an email to the guys:

Subject: Dr. Dobb's Webinar event. Required browsers.
To: webcast@techonline.com
Regarding this event:

http://event.on24.com/eventManager/presentation/html.jsp?profiletype=customHTML1&eventid=25571

I'm using Opera 9.5 and I think it's perfectly fine
for streaming purposes. It runs both RealPlayer and
Windows Media Player.

Is there a reason why Opera shouldn't work for this event?
Thanks!

I was trying to send out the message "Strange. Opera should meet the requirements, because it seems we aren't talking about browser here, only video plugins. Can you explain?". Certainly not something like "You suck. Why isn't Opera your first preferred browser, you morons?"

A few days later I received an email from TechOnline.

Hello Cosimo,

You must use either Internet Explorer with Windows Media Player (preferably) or Firefox with RealPlayer to view the webinar. It will not work with other browsers.

Best Regards,
Lenda

Lenda Carter
TechInsights | TechOnline
lcarter@techinsights.com

Uh… This isn't serious.
Something's rotten in the state of The Web.

Open the Web!