Skip to main content

Bug Tracker

Side navigation

#8509 closed bug (fixed)

Opened March 12, 2011 12:42PM UTC

Closed March 15, 2011 06:21PM UTC

Last modified March 09, 2012 04:13PM UTC

jQuery-1.5.1 doesn't work in WebBrowser control

Reported by: fl.lllj@google.com Owned by: jaubourg
Priority: low Milestone: 1.next
Component: ajax Version: 1.5.1
Keywords: Cc:
Blocked by: Blocking:
Description

When loaded in WebBrowser control, happens an error

"line nnn, symbol 1, '1' is null or not an object" and jQuery doesn't works.

IE8 - line 6313,

IE7 - line 6314.

Affected jQuery version - 1.5.1,

unaffected versions - 1.5 and prior.

Web browser - WebBrowser ActiveX control (IE8, IE7),

but not IE8 or IE7 web browsers.

OS - Windows 7, WindowsXP SP3

Code to reproduce bug (C#):

using System.Windows.Forms;

class TestForm : Form
{
    TestForm()
    {
        SuspendLayout();
        WebBrowser _webBrowser = new WebBrowser { Dock = DockStyle.Fill };
        Controls.Add(_webBrowser);
        ResumeLayout(false);

        _webBrowser.DocumentText = @"
    <script type='text/javascript' src='http://code.jquery.com/jquery-1.5.1.js'></script>
";
    }

    [System.STAThread]
    static void Main()
    {
        (new TestForm()).ShowDialog();
    }
}
Attachments (0)
Change History (4)

Changed March 12, 2011 08:30PM UTC by dmethvin comment:1

I have a C++/Win32 exe with an embedded browser and it seems to load jQuery 1.5.1 with no problems/errors on Windows 7 and IE8. I'm not sure what the difference is versus your C#/.NET version, I do not have the ability to compile your C# example. Is it possible it is dependent on the version of .NET?

The error and line number doesn't seem to make sense, it's the jQuery.extend call that is closed on line 6815.

Changed March 14, 2011 03:11PM UTC by rwaldron comment:2

component: unfiledajax
owner: → jaubourg
priority: undecidedlow
status: newassigned

In an effort to try and understand this report... looking at Line 6313 & 6314, the way IE reports bugs, I started looking down inside the jQuery.extend({}) and there exists at line 6348:

isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),

I'm wondering if ajaxLocParts[ 1 ] does not actually exist to test in the WebBrowser control?

This is conjecture...

Changed March 15, 2011 06:21PM UTC by jaubourg comment:3

resolution: → fixed
status: assignedclosed

Fixes #8509. Makes URL regexp less overzealous and ensures it recognizes URL schemes which do not contain a conformant hierarchical structure ( as per section 2.1.2 of http://www.ietf.org/rfc/rfc2718.txt ). Also adds about: and adobe air's app: and app-storage: to the list of local protocols and provides a failover in case document.location is illformed. Unit test added.

Changeset: 714ae379db9dcb704c04080196a05d13a028f7a4

Changed March 21, 2011 03:27PM UTC by ian@notifywire.com comment:4

This changeset (714ae379db9dcb704c04080196a05d13a028f7a4) worked for me in Adobe Air. Thanks!