Skip to main content

Bug Tracker

Side navigation

#7398 closed bug (fixed)

Opened November 04, 2010 09:42AM UTC

Closed January 21, 2011 04:23PM UTC

Last modified March 10, 2012 06:17AM UTC

tds[0] does not exist

Reported by: woakesd Owned by: dmethvin
Priority: high Milestone: 1.5
Component: support Version: 1.4.4rc
Keywords: Cc:
Blocked by: Blocking:
Description

I get the following error warning in firebug using the lastest version in an application:

tds[0] is undefined

jQuery.support.reliableHiddenOffsets = tds[0].offsetHeight === 0;

I've tried to create a simple test case of this but failed.

Attachments (1)
  • test-7398.html (0.5 KB) - added by dmethvin December 27, 2010 04:31PM UTC.

    XHMTL Frameset document test

Change History (31)

Changed November 04, 2010 03:13PM UTC by boushley comment:1

We need more specifics on your environment. This line is line 160 in support.js and gets run as jQuery is loaded. So this is a bug that should appear by just including jQuery. More specifics or a test case would be necessary to determine specifically what is happening.

If we don't get anymore details, this is a worksforme.

Changed November 04, 2010 06:22PM UTC by snover comment:2

owner: → woakesd
status: newpending

Please provide information about your environment (browser, OS, etc.) as well as the specific version of jQuery you are using and the scheme you are using (http, https, file, gopher, etc.).

Changed November 04, 2010 07:45PM UTC by woakesd comment:3

status: pendingnew

Hi, I will try to work out a test case for this, but in the meantime this was Firefox 3.6.12, Firebug 1.5.4, Windows Server 2008 r2 64 bit, jQuery is 1.4.4rc2 (http://code.jquery.com/jquery-1.4.4rc2.js), jQueryUI 1.8.5.

However as noted that configuation by itself doesn't cause this.

The (intranet) site where this happens uses a frameset embedded in an iframe and most pages load jquery (including the page with the frameset.

However as I write this it has stopped happening.

Close the ticket I think, I dont really have time to isolate this and create a simple example.

Changed November 04, 2010 07:51PM UTC by woakesd comment:4

It's back!

But close anyway I can't think of a simple example for it.

I have found that removing jQuery from the frameset page within the iframe ensures this doesn't happen. I'll modify the code and live with it.

The errors appeared to happen when one of the pages within a frame loaded (and this page does have a function

jQuery(function() { xxx(); });

where xxx is a function that accesses the top page jQuery.

Changed November 04, 2010 08:05PM UTC by snover comment:5

resolution: → worksforme
status: newclosed

Closing as per reporter request, and due to lack of a reproducible test case.

Changed November 04, 2010 08:12PM UTC by anonymous comment:6

Please re-open this ticket.

I'm experiencing this problem with the latest jQuery public release (1.4.3) using Firefox 3.6.12. The problem didn't manifest with jQuery 1.4.2. It does not happen under IE 8.0.7600.16385, Chrome 7.0.517.41 beta, or Safari 5.0.2 (7533.18.5). All my testing so far has been on a Windows 7 (32-bit) machine. The problem does seem related to framesets. In particular, there is a line in the jQuery code that attempts to set the innerHTML on a div but the innerHTML doesn't get changed. I will attempt to create a simple harness to illustrate the problem.

Changed November 04, 2010 11:39PM UTC by kml comment:7

Here's the HTML you can use to reproduce this bug: http://jsfiddle.net/Ba4MR/. The version of Firefox I've seen this happen under is 3.6.12.

Changed November 04, 2010 11:48PM UTC by kml comment:8

Looking at the offending code, I suspected that wrapping the frameset element in a body element might provide a workaround; it appears to have worked. Nonetheless, it might still be worth addressing since surrounding the frameset with a body isn't strictly valid from the relevant XHTML spec.

Changed November 05, 2010 12:16AM UTC by rwaldron comment:9

I'm using FF 3.6.12 and am not experiencing the issue. I've tried both the fiddle and copying the whole case out and into its own file locally.

Changed November 05, 2010 12:24AM UTC by kml comment:10

Replying to [comment:9 rwaldron]:

I'm using FF 3.6.12 and am not experiencing the issue. I've tried both the fiddle and copying the whole case out and into its own file locally.

I just copied out the fiddle, saved it into a new html file and opened it in FF 3.6.12. Inspecting the error console, I see the error occurs twice. Tomorrow I'll get some coworkers to try it out on their machines.

Changed November 05, 2010 12:30AM UTC by rwaldron comment:11

I'm not getting any errors. How about taking a screenshot?

Changed November 05, 2010 12:51AM UTC by kml comment:12

I've created a recording in MHT format but I can't figure out how to attach it to this ticket.

Changed November 05, 2010 01:02AM UTC by rwaldron comment:13

Zip it?

Changed November 05, 2010 01:08AM UTC by kml comment:14

It is zipped - I can't find any means of *attaching* it to this ticket. I'm not familiar with Trac. Does the ticket have to be in a particular state? Do I have to create a new ticket?

Changed November 05, 2010 01:11AM UTC by rwaldron comment:15

So... if you're using Firefox, can you just add this: https://addons.mozilla.org/en-US/firefox/addon/1146/

Take a screenshot, upload it here:

http://tinypic.com/

...OR...

http://gyazo.com/en

either of those ways is easier.

Changed November 05, 2010 01:22AM UTC by kml comment:16

Here we go - I decided to use mongofiles. Thanks for the info. I guess direct file attachments aren't permitted in the ticket. http://www.mongofiles.com/file/32413/bugrecording.zip

Changed November 05, 2010 01:33AM UTC by rwaldron comment:17

Something about this:

CommandLine="FIREFOX.EXE -REQUESTPENDING -OSINT -URL C:\\USERS\\KRISTIAN\\DESKTOP\\BUG.HTML"

tells me its not going to work on my linux machine. sorry dude, I tried to help. I still will if you wanna hook it up with a basic screen shot, otherwise, I cant help any further.

Changed November 05, 2010 01:39AM UTC by kml comment:18

Don't sweat it. Some coworkers are using Linux for dev - I'll see if they can reproduce it tomorrow. Hopefully I'll have something good to report. Thanks again.

Changed November 05, 2010 01:39AM UTC by kml comment:19

Don't sweat it. Some coworkers are using Linux for dev - I'll see if they can reproduce it tomorrow. Hopefully I'll have something good to report. Thanks again.

Changed November 05, 2010 12:19PM UTC by anonymous comment:20

I tried this using Firefox 3.6.11 on CentOS Linux and I also see the errors in my Firefox error console:

Error: tds[0] is undefined

Source File: http://code.jquery.com/jquery-1.4.3.js

Line: 1053

Changed November 05, 2010 12:27PM UTC by kml comment:21

Here is a screenshot of the error console: http://tinypic.com/r/2utgeom/7

Changed November 05, 2010 01:07PM UTC by rwaldron comment:22

resolution: worksforme
status: closedreopened

This whole time, I was looking in Firebug.

Changed November 05, 2010 01:08PM UTC by rwaldron comment:23

status: reopenedopen

Changed November 10, 2010 03:18PM UTC by anonymous comment:24

I can confirm this bug with my frame-based web application, too using Firefox 3.6.10.

jQuery 1.4.3 is simply included - no custom coding - and the JavaScript console throws the exact same error as previously described.

Switching back to 1.4.2 removes the error message so I suppose something in 1.4.3 is the cause of this.

Changed November 10, 2010 03:24PM UTC by anonymous comment:25

Me again, anonymous ;)

I've done some investigation on how jQuery is used in my project and I am automatically including it in most major files including frameset-only HTML files that do NOT have a BODY-tag.

This is most likely the cause !

Changed November 11, 2010 04:43PM UTC by rwaldron comment:26

#7469 is a duplicate of this ticket.

Changed November 20, 2010 02:53AM UTC by dmethvin comment:27

component: unfiledsupport

TL;DR: Error occurs with frameset documents that do not have a body. The code in support.js expects pages to have a body. In these cases the getElementsByTagName method returns undefined instead of a nodelist.

Moral of the story: jQuery wants a body.

Changed December 07, 2010 01:14PM UTC by futureweb comment:28

_comment0: Same error here - Jquery 1.4.4 included within frameset file --> error: \ \ Fehler: tds[0] is undefined \ Source: jquery-1.4.4.source.js \ Row: 1070 \ \ Any fix in sight?1291728115460218
_comment1: Same error here - Jquery 1.4.4 included within frameset file (XHTML 1.0 Frameset - without <body>) --> error: \ \ Fehler: tds[0] is undefined \ Source: jquery-1.4.4.source.js \ Row: 1070 \ \ Any fix in sight?1291728138195014

Same error here - Jquery 1.4.4 included within frameset file (XHTML 1.0 Frameset - without <body>) --> error:

Error: tds[0] is undefined

Source: jquery-1.4.4.source.js

Row: 1070

Any fix in sight?

Changed December 23, 2010 03:40AM UTC by dmethvin comment:29

Fix: https://github.com/jquery/jquery/pull/144

I've attached a minimal repro case to the ticket, since it can't be done through jsfiddle.

Changed December 23, 2010 03:42AM UTC by dmethvin comment:30

owner: woakesddmethvin
status: openassigned

Changed January 21, 2011 04:23PM UTC by john comment:31

priority: undecidedhigh
resolution: → fixed
status: assignedclosed

Landed this pull request from Dave:

https://github.com/jquery/jquery/pull/199