Skip to main content

Bug Tracker

Side navigation

#4651 closed bug (fixed)

Opened May 12, 2009 08:56PM UTC

Closed October 19, 2009 01:43AM UTC

Last modified March 13, 2012 04:24PM UTC

jquery support object needs name attribute for param tag

Reported by: mhildreth Owned by:
Priority: undecided Milestone: 1.4
Component: support Version: 1.3.2
Keywords: support initialization param name Cc:
Blocked by: Blocking:
Description

When the jquery support object is initialized, a tester HTML string is injected into a div with display:none. The string that is injected contains an object tag and a param tag. The param tag does not have a name attribute speicified, but this is required by the xhtml spec.

This may not be a huge deal, but some third party scripts (in our case the Cisco Web VPN scripts) assume that every param tag will have a name attribute. This causes an error on the script initialization.

The solution was simply to add the name attribute with a value of "". We did this on the jquery 1.3.2 debug file at line 3122.

Attachments (1)
  • jquery.debug.js (160.5 KB) - added by mhildreth May 12, 2009 08:57PM UTC.

    This file contains the fix we added on line 3122

Change History (8)

Changed May 13, 2009 12:29AM UTC by dmethvin comment:1

Thanks for the report. That code was backed out in [6268] because of the bug reported in #4017. Were you seeing the ActiveX warning as well?

Changed May 13, 2009 03:35AM UTC by mhildreth comment:2

I was not seeing any ActiveX warning. The Cisco VPN client is likely to blame for a couple of reasons. First, it basically reads all javascript served through the VPN and replaces (very cleverly I might add) all calls to functions involved in DOM manipulations to run though it's own proxy functions. The issue was that as it basically funnels DOM manipulations through its own functions so that it can revamp any href or src attributes with the re-adjusted VPN url's. To do this, it parses any html strings injected into the DOM. As the jquery support object injects that dummy html string into the DOM to detect browser behaviors, the Cisco parser assumes that any param tags will have a name attribute. They should probably detect the presence of such attributes, but their scripts that are injected are hard coded in their firmware. The scripts (unfortunately) assume that any param tag will have a name attribute and subsequently cause a runtime error during the jquery loading process, thus rendering the site jquery-less. Simply adding the empty name attribute rectifies this problem. I know it is debatable as to whether this is a cisco issue or a jquery issue, but I think that the simple answer is that it may be both. The param tag *requires* the name attribute. In the interim, we have modified the jquery source files by simply adding an empty param attribute with a value of empty string to alleviate the loading problem. Any help is appreciated on this issue. Thanks in advance,

-Mark

Changed May 14, 2009 12:23AM UTC by dmethvin comment:3

resolution: → fixed
status: newclosed

I think this will be fixed in 1.3.2 by virtue of the patch mentioned above, so your local patch should hold you until then. I've noted this ticket in #4017 in case the code makes a reappearance in the future.

Changed May 14, 2009 12:24AM UTC by dmethvin comment:4

Duh, 1.3.3.

Changed June 09, 2009 04:21PM UTC by soulama comment:5

Hi,

I always have the same problem even after i had made the change!!

any idea?

Changed June 09, 2009 04:25PM UTC by soulama comment:6

resolution: fixed
status: closedreopened

Changed October 19, 2009 01:43AM UTC by dmethvin comment:7

resolution: → fixed
status: reopenedclosed

Fixed by removing the code.

Changed December 10, 2009 05:48AM UTC by john comment:8

milestone: 1.3.21.4