Bug 14778
Summary: | Add To Basket button doesn't work in WebKit | ||
---|---|---|---|
Product: | WebKit | Reporter: | Alex Stapleton <alex.stapleton> |
Component: | Evangelism | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED WORKSFORME | ||
Severity: | Normal | CC: | abarth, ddkilzer, vicki |
Priority: | P2 | Keywords: | HasReduction |
Version: | 523.x (Safari 3) | ||
Hardware: | Mac | ||
OS: | OS X 10.4 | ||
URL: | http://www.comet.co.uk/shopcomet/product/443786/TOSHIBA-32AV505D |
Alex Stapleton
Throws a JS exception. Works in other browsers.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
David Kilzer (:ddkilzer)
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
David Kilzer (:ddkilzer)
Not a regression as similar behavior occurs in Safari 2.0.4 (419.3) with original WebKit on 10.4.10.
allan28
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?
David Kilzer (:ddkilzer)
(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
David Kilzer (:ddkilzer)
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'.
David Kilzer (:ddkilzer)
(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
---
allan28
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
David Kilzer (:ddkilzer)
(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!
David Kilzer (:ddkilzer)
(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
David Kilzer (:ddkilzer)
(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
---
Alex Stapleton
It's still broken. Same error by the looks of things.
David Kilzer (:ddkilzer)
(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.
Adam Barth
This works fine now. According to the comments above, this was a site issue all along.