Sign up | Lost password? | Help

[ advanced search ]

The definitive guide to Google Maps (currently mostly broken in 9.63) and a tedious fix

Forums » Opera Community » Opera for desktop » Opera browser

Sunday, 21. December 2008, 14:23:04

rif

avatar

Posts: 335

USA

The definitive guide to Google Maps (currently mostly broken in 9.63) and a tedious fix

There are a number of issues that currently don’t work in maps.google.com. Hallvord asked me to file a new bug report on this. The new bug number is, DSK-242877.

This is related to, but more problems then bug DSK-238894 reported in this, Thread

Here is the most serious thing that is NOT working. Changing id’s or masking does not help this issue.

Type in “restaurants 49855.” This will bring up a list of restaurants in Marquette, MI and show their location on a map. If you click on one of the restaurants (in either the left column or map view) it will bring up a bubble with some choices. You should see in the bubble, “Get directions: To here - From here.” If you enter an address into that bubble and hit enter or click on “go” nothing happens.

You can’t find directions to or from your destination!

A tedious fix; copy the address from the pop up bubble and paste it into “Search Maps” box and then type in “to” and the location you want to go to. Hit enter or click on “search maps” and you will be shown directions.

A second somewhat serious issue is if you have a Google account and if you use the “Save address” feature. If you are at maps.google.com, and look to the right of the address box there is a gray triangle pointing down. If you click on this it should bring up a “My Saved Locations” box. You can’t access this no matter what you mask or id as. Would there be any relevance that its a "javascript:void(0) link?

The “My Maps” option now works if you id as Opera, FF, IE, or masking as FF. It will never load if you mask as IE.

The “Featured Content” will only work/show if you mask as FF. The same holds true for “Created by Others.” You have to mask as FF for this to work.

The above paragraph is related to this (Opera knows about this)… Child Iframe bug

If you’ve read this far it seems your best choice is to mask as FF. If you do though you won’t be able to “drag” your routes. That only works if you ID as Opera, FF, or IE.

Friday, 2. January 2009, 16:16:28

thanks for this...i can confirm these bugs as well

Friday, 2. January 2009, 17:50:47

robot_tourist

avatar

Posts: 97

the lovely javascripty version of Google maps won't load at all for me (OS X 10.5.6; Opera 9.63 build 5261) and the message at the top of the screen tells me to try the basic HTML version. I think it was OK until 9.63. No problems in Safari.

Monday, 5. January 2009, 05:56:15

hallvors

Opera Software

avatar

Posts: 1351

Norway

Opera Software

Originally posted by rif:

There are a number of issues that currently don’t work in maps.google.com. Hallvord asked me to file a new bug report on this. The new bug number is, DSK-242877.



Hi rif,
thanks for filing the new report. I've been investigating :smile:

As a general point, please try to file one bug report per problem you are seeing. If one report mentions several problems it's easy to loose the overview of them and perhaps not all are sufficiently investigated.

Type in “restaurants 49855.” This will bring up a list of restaurants in Marquette, MI and show their location on a map. If you click on one of the restaurants (in either the left column or map view) it will bring up a bubble with some choices. You should see in the bubble, “Get directions: To here - From here.” If you enter an address into that bubble and hit enter or click on “go” nothing happens.



I've been trying this in 9.6x and 10.x for both maps.google.com, maps.google.no and maps.google.de and unfortunately it seems to work fine for me :frown:

Do you have any active User JavaScripts that might interfere with the site?
Do you use any ad filtering- or internet security software that might prevent JavaScript from being loaded correctly?
Do you see any error messages if you go to "Tools > Advanced > Error console" and select "javascript" from the bottom left drop-down?

A second somewhat serious issue is if you have a Google account and if you use the “Save address” feature. If you are at maps.google.com, and look to the right of the address box there is a gray triangle pointing down. If you click on this it should bring up a “My Saved Locations” box. You can’t access this no matter what you mask or id as. Would there be any relevance that its a "javascript:void(0) link?



This I can reproduce and I've analysed it. It's caused by Maps' JS running into a small incompatibility with Firefox that noone noticed before: an <A> node's constructor property is window.Object in Opera, but not in Firefox. Minor, obscure, hard to find, broke G Maps.. bad combination that. :eek:

The “My Maps” option now works if you id as Opera, FF, IE, or masking as FF. It will never load if you mask as IE.



I would rather not spend time on analysing this, since mask as IE is not the default setting and it's most likely caused by their browser sniffing and not a bug in Opera.



The “Featured Content” will only work/show if you mask as FF. The same holds true for “Created by Others.” You have to mask as FF for this to work.



I'm hopeful that we'll get the last one of the overly tight security policies adjusted soon so that this:

The above paragraph is related to this (Opera knows about this)… Child Iframe bug


..can be fixed at Google's side.

If you’ve read this far it seems your best choice is to mask as FF. If you do though you won’t be able to “drag” your routes. That only works if you ID as Opera, FF, or IE.



Again, I'd rather not spend time on problems caused by different "Identify" settings. Sorry about that, but Google Maps is so complex it's taken me hours to figure out that small issue about <A>.constructor..

Monday, 5. January 2009, 06:40:21

Chas4

Operaaholic

avatar

Posts: 705

USA

10.4.11 Intel here
for me it gets stuck

I get: Still loading... Slow? Try Basic HTML on the top of the page

I also have no scroll bars but I can scroll left and right and up and down

Opera DragonFly says that there a lot of css errors

maps.google.rtf

No problems in Safari. +1

Monday, 5. January 2009, 07:46:28

Turin

Swam to shore from Atlantis

avatar

Posts: 1123

Beleriand

Chas4, have you tried clearing your Google cookies?

Monday, 5. January 2009, 15:34:20

Chas4

Operaaholic

avatar

Posts: 705

USA

Turin that did it

something interesting when I did a validation check

Errors found while checking this document as HTML5!
Result:162 Errors, 1 warning(s)

Monday, 5. January 2009, 15:43:53

fearphage

Trained Swordsman of Unwanted Opera Termination

avatar

Posts: 2005

USA

Originally posted by Chas4:

I get: Still loading... Slow? Try Basic HTML on the top of the page

Confirmed.

Originally posted by Turin:

have you tried clearing your Google cookies?

Haven't tried that.

Monday, 5. January 2009, 16:58:31

Originally posted by hallvors:

Originally posted by rif:

There are a number of issues that currently don’t work in maps.google.com. Hallvord asked me to file a new bug report on this. The new bug number is, DSK-242877.



Type in “restaurants 49855.” This will bring up a list of restaurants in Marquette, MI and show their location on a map. If you click on one of the restaurants (in either the left column or map view) it will bring up a bubble with some choices. You should see in the bubble, “Get directions: To here - From here.” If you enter an address into that bubble and hit enter or click on “go” nothing happens.



I've been trying this in 9.6x and 10.x for both maps.google.com, maps.google.no and maps.google.de and unfortunately it seems to work fine for me :frown:

Do you have any active User JavaScripts that might interfere with the site?
Do you use any ad filtering- or internet security software that might prevent JavaScript from being loaded correctly?
Do you see any error messages if you go to "Tools > Advanced > Error console" and select "javascript" from the bottom left drop-down?



i can confirm that the Get directions: To here - From here feature does not seem to work. this happened to me after i switched to 9.63. before that, i never experienced an issue with this. here is the error tha tshows up in the error console:


JavaScript - http://maps.google.com/
Timeout thread: delay 0 ms
Error:
name: TypeError
message: Statement on line 54: Type mismatch (usually non-object value supplied where object required)
Backtrace:
Line 54 of linked script http://maps.google.com/cat_js/intl/en_us/mapfiles/140g/%7Bsuggest/main,maps2/mod_display_manager%7D.js: In function Eb
function Eb(a,b,c){a.setAttribute(b,c)}
Line 223 of linked script http://maps.google.com/cat_js/intl/en_us/mapfiles/140g/%7Bsuggest/main,maps2/mod_display_manager%7D.js: In function X
M(c.suggestOnFocus,true);d.Ha=false;d.ja=M(c.selectOnHover,true);d.Ga=M(c.iterateOnAccept,false);d.Bc=M(c.submitOnEnter,false);Eb(b,"autocomplete","off");if(d.Ib())z(b,Fa,d,d.Ia);else{z(b,Ea,d,d.Ia);z(b,Fa,d,d.Lb)}z(b,Ga,d,d.Mb);z(b,Da,d,d.wa);z(b,Ca,d,d.wa);z(b,Ba,d,d.I);z(b,Qa,d,d.ob)}
Line 330 of linked script http://maps.google.com/cat_js/intl/en_us/mapfiles/140g/%7Bsuggest/main,maps2/mod_display_manager%7D.js: In function ne
function ne(a,b,c){var d={splitters:ue[c],suggestOnFocus:false};Xb(d,a.na);var e=new X(a.C(o,[]),b,d);wb(a,Aa,ve(e))}
Line 329 of linked script http://maps.google.com/cat_js/intl/en_us/mapfiles/140g/%7Bsuggest/main,maps2/mod_display_manager%7D.js: In function we
function we(a){if(!a)return;if(ie)xe(ie,a,0);else if($)ne($,a,0)}
... Line 1 of eval script
function(){var d=new Array(arguments.length);for(var e=0;e<arguments.length;++e){var f=arguments[e];d[e]=xO._translateValue(b,a,f)}var g=xO._translateValue(b,a,this),h=c.apply(g,d);return xO._translateValue(a,b,h)}
Line 1653 of eval script
function(c){c(b)}
Line 254 of eval script
function(){c(f().yGa(a,b))}
Line 1 of eval script
function(a,b,c){var d=this.$k,e=Ij(d,"loaded");if(e[a])b();else{var f=Ij(d,"pending"),g=Jj(f,a);g.push(b);var h=Ij(d,"loading");if(!c&&!h[a]){h[a]=true;var i=this.VZ(a);if(!i)throw Error("No URL for binary "+a);(d.getScript||wO.tSa)(i)}}}
Line 254 of eval script
function(f){if(f().Nea(a))f().load(a,function(){c(f().yGa(a,b))},
Line 218 of eval script
function(f){c(f)}
Line 215 of eval script
function(a,b,c,d,e){if(this.SEa[a])c(this.Jy[a]);else{Jj(this.Lc,a).push(c);if(!e)this.s3(a,b,d)}}
Line 218 of eval script
function(a,b,c,d,e){this.xGa(a,b,function(f){c(f)},
Line 227 of eval script : In function ak
function ak(a,b,c,d,e){gj(Wj).require(a,b,c,d,e)}
Line 254 of eval script : In function mk
function mk(a,b,c,d,e){if(rk)ak(sk,tk,function(f){if(f().Nea(a))f().load(a,function(){c(f().yGa(a,b))},
Line 1653 of eval script : In function wC
function wC(a){var b=v(a);if(!Db||!b)return;mk(lu,qu,function(c){c(b)})}
Line 1 of eval script
function(){var a=this,b=a.G.Np(),c=Cl(b,mO);if(c)c.className=oO;Cl(b,hO).select();wC(hO);DD(hO);a.S=a.A_(dO)}
... Line 165 of eval script
function(){return b.apply(a||this,
Line 1 of eval script
function(a,b){I(this,yo,a);if(b)b()}
...
stacktrace: n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace'

Monday, 5. January 2009, 20:38:29

rif

avatar

Posts: 335

USA

Originally posted by hallvors:

Type in “restaurants 49855.” This will bring up a list of restaurants in Marquette, MI and show their location on a map. If you click on one of the restaurants (in either the left column or map view) it will bring up a bubble with some choices. You should see in the bubble, “Get directions: To here - From here.” If you enter an address into that bubble and hit enter or click on “go” nothing happens.



I've been trying this in 9.6x and 10.x for both maps.google.com, maps.google.no and maps.google.de and unfortunately it seems to work fine for me :frown:

Figured this out. It works as long as you aren't logged in to google. As soon as you log in this doesn't work.

Just got back from a week of pool. Will look more later at your answers.

Tuesday, 6. January 2009, 01:10:35

hallvors

Opera Software

avatar

Posts: 1351

Norway

Opera Software

Originally posted by rif:

It works as long as you aren't logged in to google. As soon as you log in this doesn't work.



I think I tested both, but that observation helps. From the error message GeneValgene posted, I'm guessing that this has the same underlying cause as the issue breaking "saved addresses". I'll investigate..

Tuesday, 6. January 2009, 01:47:24

hallvors

Opera Software

avatar

Posts: 1351

Norway

Opera Software
Confirmed - it is the same problem. This User JS should solve it:
http://files.myopera.com/hallvors/userjs/maps.google.com.CORE-17333.js

Can someone test if this also solves the "does not stop loading" problem on Mac? It's a bit of a long shot, but it might help.

..time to get a new browser.js out the door, I suppose :wink:

Tuesday, 6. January 2009, 03:30:30

MsMouse

avatar

Posts: 1

I am using a Mac and have the same problem of Google Maps not loading and have tried all the deleting cache stuff. What do I need to do with the js file?

Sorry for being a dolt! I just clicked on the link in the previous message and expected something magical to happen :-)

Tuesday, 6. January 2009, 05:27:47

hallvors

Opera Software

avatar

Posts: 1351

Norway

Opera Software
You basically need to save it in a folder and tell Opera where it is - for some more details and step-by-step instructions, see
http://userjs.org/help/installation

Tuesday, 6. January 2009, 10:53:02 (edited)

fearphage

Trained Swordsman of Unwanted Opera Termination

avatar

Posts: 2005

USA

Originally posted by hallvors:

http://files.myopera.com/hallvors/userjs/maps.google.com.CORE-17333.js

The following code returns the same toString value as ff and chrome:
HTMLElement.prototype.__defineGetter__ ('constructor', function() { return this; });
remove the space after __defineGetter__ (myopera bug)

javascript:alert(document.createElement('div').constructor)

Safari - HTMLDivElementConstructor
FF & Chrome - HTMLDivElement
IE - undefined
Opera - Object

Tuesday, 6. January 2009, 11:44:07

rif

avatar

Posts: 335

USA

Hallvors and fearphage you guys are onto something.

First, I'm a bit confused fearphage over what should be in my userjs...

hallvors...

Element.prototype.constructor=Element;

or fearphage's

HTMLElement.prototype.__defineGetter__ ('constructor', function() { return this; });

BTW, they both solve the bug when you bring up a dialog box and want directions from/to there AND you are logged in.

Both also let you edit your saved addresses.

Now that you have that working (almost)

When you are logged in and enter a nickname for a address. In example would be for me entering "woodview." This brings up a box below the address where I should be able to either use the down arrow key or tab key to hilite this entry and then hit enter. The DOWN ARROW key and TAB key don't work. Using the mouse to click on it also doesn't work.Clipboard01.jpg

Thursday, 8. January 2009, 07:42:01

hallvors

Opera Software

avatar

Posts: 1351

Norway

Opera Software

Originally posted by rif:

When you are logged in and enter a nickname for a address. In example would be for me entering "woodview." This brings up a box below the address where I should be able to either use the down arrow key or tab key to hilite this entry and then hit enter.



Glad you reminded me. I noticed that at some point but forgot about it again. It's now bug CORE-17460 and can be fixed by adding this to your user script:
Event.prototype.constructor=Event;

..or waiting for next browser.js release. :smile:

Thursday, 8. January 2009, 07:43:55

hallvors

Opera Software

avatar

Posts: 1351

Norway

Opera Software
(BTW to clear up any confusion, what I suggested and fearphage suggested is basically equivalent to get Maps working. Either is fine. I think mine is a tad more "correct" as an object having itself as the constructor sounds a bit odd.)

Friday, 9. January 2009, 19:07:07

Originally posted by hallvors:

Originally posted by rif:

When you are logged in and enter a nickname for a address. In example would be for me entering "woodview." This brings up a box below the address where I should be able to either use the down arrow key or tab key to hilite this entry and then hit enter.



Glad you reminded me. I noticed that at some point but forgot about it again. It's now bug CORE-17460 and can be fixed by adding this to your user script:
Event.prototype.constructor=Event;

..or waiting for next browser.js release. :smile:



w00t...you guys are awesome. this fixed it for me.
i can finally use google maps again :smile:

Friday, 9. January 2009, 21:30:39

This is my first userscript adventure. Trying to get Google Maps working (again).

Made new folder called userjs. Went to Preferences>Advanced>Content and 'browsed' to the folder that contains the file user.js which is simply: Event.prototype.constructor=Event;

Closed and restarted Opera 9.63. No Joy: "Still Loading? Try basic HTML."

What am I doing wrong?

Friday, 9. January 2009, 22:19:33

rif

avatar

Posts: 335

USA

Originally posted by 1101doc:


Closed and restarted Opera 9.63. No Joy: "Still Loading? Try basic HTML."

What am I doing wrong?

I'm pretty sure you are "masking as IE." Do this...

Right click somewhere in the page
Edit Site Preferences
Network
Browser Identification change to Opera

Hit F5 to reload the page

Saturday, 10. January 2009, 02:21:45

fearphage

Trained Swordsman of Unwanted Opera Termination

avatar

Posts: 2005

USA

Originally posted by 1101doc:

Closed and restarted Opera 9.63. No Joy: "Still Loading? Try basic HTML."

Clear your cookies. I was still getting the same behavior after the browser.js patch as well. I cleared my cookies and now google maps is ultra quick and everything seems to be working.

Saturday, 10. January 2009, 09:13:34

OK. Google cookies clear and Identified as Opera- still no joy.
"Still Loading?...."

Saturday, 10. January 2009, 14:43:59

fearphage

Trained Swordsman of Unwanted Opera Termination

avatar

Posts: 2005

USA

Originally posted by 1101doc:

OK. Google cookies clear and Identified as Opera- still no joy.
"Still Loading?...."

Sorry, i'm using opera 10. Didn't notice this was about 9.63. good luck!

Sunday, 11. January 2009, 02:11:21 (edited)

fearphage

Trained Swordsman of Unwanted Opera Termination

avatar

Posts: 2005

USA

Originally posted by hallvors:

I think mine is a tad more "correct" as an object having itself as the constructor sounds a bit odd

Here is a more expensive but standards compliant approach that still makes it work.
(function(regex, toString) {
  HTMLElement.prototype.__defineGetter__ ('constructor', function() {
    return window[toString.call(this).match(regex)[1]];
  });
})(/^\[object\s(.*)\]$/, Object.prototype.toString);
It more closely matches other browser's implentations. In every other browser not named Opera, document.createElement('div').constructor == window.HTMLDivElement. My patch makes this true in opera while making google maps work as well.

EDIT: I had to add a space between __defineGetter__ ('constructor' because of a myopera bug.

Also wanted to update a mistake that I made earlier:
browser - Object.prototype.toString.call(document.createElement('div').constructor)
Chrome - function HTMLDivElement() { [native code] }
FF2 - [HTMLDivElement] // function
FF3 - [object HTMLDivElement]
IE - undefined
Opera - function Object() { [native code] }
Safari - [object HTMLDivElementConstructor]

Sunday, 11. January 2009, 03:41:35


Thank you very much for your effort. Replacing my user.js with the above script has made no difference. I must have some other issue as well. Google maps is still broken for me.

Sunday, 11. January 2009, 05:27:50

fearphage

Trained Swordsman of Unwanted Opera Termination

avatar

Posts: 2005

USA

Originally posted by 1101doc:

Thank you very much for your effort. Replacing my user.js with the above script has made no difference.

I just used 9.62 with only the browser.js fix and it was snappy and functional. Maybe some other userjs script is affecting it?

Sunday, 11. January 2009, 14:17:44

Your script is my only script.

Sunday, 11. January 2009, 17:08:18

Well, Hey! It started working! Thanks so much. Evidently I needed a reboot of the system, not just a restart of Opera. I am now a happy Google Maps camper! Thanks again, fearpage!

Sunday, 11. January 2009, 18:37:25

fearphage

Trained Swordsman of Unwanted Opera Termination

avatar

Posts: 2005

USA

Originally posted by 1101doc:

Thanks again, fearpage!

Browser.js will fix it well enough to work if my script fixed it. So you can delete my script and you should still be fine afaik.

Sunday, 11. January 2009, 18:48:17

I think I will leave well enough alone.

Sunday, 11. January 2009, 19:36:34

rif

avatar

Posts: 335

USA

Originally posted by fearphage:

Browser.js will fix it well enough to work if my script fixed it. So you can delete my script and you should still be fine afaik.

Browser.js ONLY fixes this..in my testing

Originally posted by rif:

Type in “restaurants 49855.” This will bring up a list of restaurants in Marquette, MI and show their location on a map. If you click on one of the restaurants (in either the left column or map view) it will bring up a bubble with some choices. You should see in the bubble, “Get directions: To here - From here.” If you enter an address into that bubble and hit enter or click on “go” nothing happens.

I don't think browser.js fixed this...

Originally posted by rif:

When you are logged in and enter a nickname for a address. In example would be for me entering "woodview." This brings up a box below the address where I should be able to either use the down arrow key or tab key to hilite this entry and then hit enter. The DOWN ARROW key and TAB key don't work. Using the mouse to click on it also doesn't work.Clipboard01.jpg

To fix this, you need this in a js file...

Event.prototype.constructor=Event;

Or wait until it gets into browser.js

Originally posted by hallvors:

Glad you reminded me. I noticed that at some point but forgot about it again. It's now bug CORE-17460 and can be fixed by adding this to your user script:

Event.prototype.constructor=Event;

..or waiting for next browser.js release. :smile:

Forums » Opera Community » Opera for desktop » Opera browser