Bug 14778 - Add To Basket button doesn't work in WebKit
Summary: Add To Basket button doesn't work in WebKit
Status: RESOLVED WORKSFORME
Alias: None
Product: WebKit
Classification: Unclassified
Component: Evangelism (show other bugs)
Version: 523.x (Safari 3)
Hardware: Mac OS X 10.4
: P2 Normal
Assignee: Nobody
URL: http://www.comet.co.uk/shopcomet/prod...
Keywords: HasReduction
Depends on:
Blocks:
 
Reported: 2007-07-27 03:28 PDT by Alex Stapleton
Modified: 2010-01-02 10:02 PST (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alex Stapleton 2007-07-27 03:28:45 PDT
Throws a JS exception. Works in other browsers.
Comment 1 David Kilzer (:ddkilzer) 2007-07-27 10:12:18 PDT
Confirmed with a local debug build of WebKit r24669 with Safari 3 Public Beta v. 3.0.2 (522.12) on Mac OS X 10.4.10 (8R218).  The JavaScript Console shows:

TypeError: Undefined value
http://www.comet.co.uk/comet/ev2/js/addtobasket.js
Line:  100

Strange console output when the page is loaded as well:

Unsafe JavaScript attempt to access frame with URL http://www.comet.co.uk/cometbrowse/product.do?sku=380083 from frame with URL http://www.comet.co.uk/cometbrowse/product.do?sku=380083. Domains, protocols and ports must match.
[8723] http://ecustomeropinions.com/popup/i.php?sid=964408492&v=500&r=64375&xres=1280&yres=854&url=/cometbrowse/product.do%3Fsku%3D380083&referrer=http%3A//bugs.webkit.org/show_bug.cgi%3Fid%3D14778 line 3: TypeError: Undefined value
(event handler):Can't find variable: oldonload

Comment 2 David Kilzer (:ddkilzer) 2007-07-27 10:13:19 PDT
Not a regression as similar behavior occurs in Safari 2.0.4 (419.3) with original WebKit on 10.4.10.

Comment 3 allan28 2007-12-17 16:12:06 PST
Works with Firefox useragent.
Site uses browsersniffing, and mistakenly alters eventhandling for Safari:

---                
                if(event.indexOf(fName)==-1)
		{
			if(cGU&&event.indexOf("function "+"(")==0)
			{
				fName=fName+";"+event.substring(event.indexOf("{"),event.length);
			}
			var newfunc=new Function("e",fName);
			return newfunc;

---
Where cGU is true with Safari.
Possibly tries to fix previous bad behaviour?
Comment 4 David Kilzer (:ddkilzer) 2007-12-18 05:34:53 PST
(In reply to comment #3)
> Works with Firefox useragent.
> Site uses browsersniffing, and mistakenly alters eventhandling for Safari:

Is this custom shopping cart code, or are they using a third-party shopping cart for the site?

Confirmed that switching to Firefox 2.0.0.2 user agent fixes the issue.

FWIW, I'm seeing a new message printed to the JavaScript Console (whether using the default user agent or Firefox):

Can't find variable: oldonload
undefined
Line: 2

Comment 5 David Kilzer (:ddkilzer) 2007-12-18 05:56:41 PST
Filled out a customer request form here regarding this issue:

https://comet.custhelp.com/cgi-bin/comet.cfg/php/enduser/ask.php

---
The shopping basket feature of comet.co.uk does not work with the Safari 3.0.x web browser on Windows XP or Mac OS X.  This issue is being tracked by this bug:

http://bugs.webkit.org/show_bug.cgi?id=14778

Please consider testing and fixing the comet.co.uk web site to work properly with the Safari web browser.  You may download a free beta of Safari 3 for Windows here:

http://www.apple.com/safari/

Thanks!

Dave
---

The reference number for your question is '071218-000176'.

Comment 6 David Kilzer (:ddkilzer) 2007-12-18 09:03:37 PST
(In reply to comment #5)
> Filled out a customer request form here regarding this issue:
> https://comet.custhelp.com/cgi-bin/comet.cfg/php/enduser/ask.php
> [...]
> The reference number for your question is '071218-000176'.

I've already gotten a response!

---
Response (Simon Pyper) 18/12/2007

Dear Mr Kilzer. 

Thank you for your recent email regarding web compatbility issues. 

I have passed your comments on to our IT/Web team to look at and I'm sure that they will be able to implement a solution to this problem. 

Regards, 

Simon Pyper 
Comet Customer Services
---

Comment 7 allan28 2007-12-18 13:09:40 PST
I'm not seeing this with the latest nightly (with Firefox useragent).

Debugging showed that the "TypeError: Undefined value: oldonload"  was caused by the snippet I included (slightly obfuscated js-file called eluminate.js). This is part of their stat/add-tracking software and is third-party, so you should probably mail Coremetrics (http://www.coremetrics.com/company/contact_us.php) instead, as it is their code that is in error.

The "TypeError: Undefined value" at line 100 is caused by the first error, as a global variable isn't set since their onload-handler is wrecked by Coremetrics onload-handler and stops after the first error.

If Coremetrics omits their Safari-check in their event-handler, everything should work.

(In reply to comment #4)
> FWIW, I'm seeing a new message printed to the JavaScript Console (whether using
> the default user agent or Firefox):
> 
> Can't find variable: oldonload
> undefined
> Line: 2

Comment 8 David Kilzer (:ddkilzer) 2007-12-18 22:32:23 PST
(In reply to comment #7)
> If Coremetrics omits their Safari-check in their event-handler, everything
> should work.

Thanks for the analysis!  I've sent a note to support at coremetrics dot com about the issue.  Hopefully this is already fixed in a software update and comet.co.uk can just pick up a new version!

Comment 9 David Kilzer (:ddkilzer) 2007-12-18 22:44:42 PST
(In reply to comment #8)
> Thanks for the analysis!  I've sent a note to support at coremetrics dot com
> about the issue.  Hopefully this is already fixed in a software update and
> comet.co.uk can just pick up a new version!

Response from Coremetrics support:

Ticket #:	5377-4752077
Date Created:	12/19/2007 12:34 AM CDT

Comment 10 David Kilzer (:ddkilzer) 2007-12-19 05:54:45 PST
(In reply to comment #9)
> Response from Coremetrics support:
> Ticket #:       5377-4752077
> Date Created:   12/19/2007 12:34 AM CDT

---
Hi David,

We have forwarded your message to our Product Management team for further review and consideration for any future software releases.  Please let us know if you need anything further.

Thank you,
Coremetrics Customer Support
---

Comment 11 Alex Stapleton 2008-07-02 02:51:46 PDT
It's still broken. Same error by the looks of things.
Comment 12 David Kilzer (:ddkilzer) 2008-07-02 06:44:36 PDT
(In reply to comment #11)
> It's still broken. Same error by the looks of things.

Confirmed.  Interestingly, the "Add to Basket" link on the home page DOES work, but the "Add to Basket" link on an individual product page still gives the same error message.
Comment 13 Adam Barth 2010-01-02 10:02:37 PST
This works fine now.  According to the comments above, this was a site issue all along.