Bug Tracker

Ticket #4651 (closed bug: fixed)

Opened 6 years ago

Last modified 3 years ago

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:
Blocking: Blocked by:

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

jquery.debug.js Download (160.5 KB) - added by mhildreth 6 years ago.
This file contains the fix we added on line 3122

Change History

Changed 6 years ago by mhildreth

This file contains the fix we added on line 3122

comment:1 Changed 6 years ago by dmethvin

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?

comment:2 Changed 6 years ago by mhildreth

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

comment:3 Changed 6 years ago by dmethvin

  • Status changed from new to closed
  • Resolution set to fixed

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.

comment:4 Changed 6 years ago by dmethvin

Duh, 1.3.3.

comment:5 Changed 6 years ago by soulama

Hi, I always have the same problem even after i had made the change!! any idea?

comment:6 Changed 6 years ago by soulama

  • Status changed from closed to reopened
  • Resolution fixed deleted

comment:8 Changed 5 years ago by dmethvin

  • Status changed from reopened to closed
  • Resolution set to fixed

Fixed by removing the code.

comment:9 Changed 5 years ago by john

  • Milestone changed from 1.3.2 to 1.4
Note: See TracTickets for help on using tickets.