Opened 5 years ago

Closed 4 years ago

#18372 closed defect (invalid)

Combobox doesnt work using c# WebBrowser control in Dojo 1.10

Reported by: neillyt Owned by: neillyt
Priority: undecided Milestone: 1.11
Component: General Version: 1.10.2
Keywords: Cc:
Blocked By: Blocking:

Description

Since upgrading from Dojo 1.8.3 to 1.10 ComboBox?'s no longer function correctly when the web application is launched from a c# WebBrowser? control. The arrow button to invoke the list of items no longer works.

As a work around i can use the cursor keys to display the list of items in the ComboBox?.

It works if the web application is run in browser (Chrome/IE11) just not from the c# WebBrowser? app. If i change the web application to use dojo 1.8.3 it all works fine.

This is reproducable using a simple test case below which simply invokes a test web app.

 namespace WindowsApplication1
 {
    public partial class Form1 : Form
    {
	    public Form1()
	    {
	        InitializeComponent();
	    }

	    private void Form1_Load(object sender, EventArgs e)
	    {
	        // When the form loads, open this web page.
                webBrowser1.Navigate("http://serverA/combo/index.html");
	    }
    }
 }

The code for index.html is simply based on the ComboBox? dojo tutorial.

<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">  		
		<link rel="stylesheet" href="./css/msw.css"> 			
	    <title>ComboBox</title>    
		<script>dojoConfig = {parseOnLoad: true}</script>
		<script src="/dojo/dojo/dojo.js"></script> 	
		<script>
			require([
			    "dojo/store/Memory", "dijit/form/ComboBox", "dojo/domReady!"
			], function(Memory, ComboBox){
			    var stateStore = new Memory({
			        data: [
			            {name:"Alabama", id:"AL"},
			            {name:"Alaska", id:"AK"},
			            {name:"American Samoa", id:"AS"},
			            {name:"Arizona", id:"AZ"},
			            {name:"Arkansas", id:"AR"},
			            {name:"Armed Forces Europe", id:"AE"},
			            {name:"Armed Forces Pacific", id:"AP"},
			            {name:"Armed Forces the Americas", id:"AA"},
			            {name:"California", id:"CA"},
			            {na

Change History (5)

comment:1 Changed 5 years ago by neillyt

I have tried changing the user agent of the c# WebBrowser? to the same one used by IE11 but to no avail. Swaping back to dojo1.8.3 resolves the issue.

Using

  • Microsoft visual studio 2005 to build the c# app
  • Windows 7
  • Dojo 1.10
  • BrowserApp? User Agent : Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/7.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath?.3; Tablet PC 2.0)

In addition to this issue, the following css is also not working when running dojo 1.10

.dgrid-selected .dgrid-cell { background-color: #FFFF33; }

Again, reverting to dojo 1.8.3 resolves the issue (in both cases using dgrid 0.3.15)

comment:2 Changed 5 years ago by neillyt

Tracked it down to the following line in the html.

	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

This is working ok in the c# WebBrowser? if IE9 is installed, not IE11, removing it resolves the issue with invoking the app from the WebBrowser? control.

comment:3 Changed 5 years ago by bill

We don't support or test the WebBrowser? control. You could try to use "git bisect" to trace down the commit where this stopped working. However, it may be difficult because as you bisect the dijit code, getting earlier versions of it, you may also need to get matching earlier versions of the dojo (core) code.

comment:4 Changed 4 years ago by dylan

Milestone: tbd1.11
Owner: set to neillyt
Status: newpending

I'm pretty sure this is a result of IE11's stance of "don't call me IE11, call me trident instead."

My guess is you're in an unexpected user agent string realm where things aren't working as we would expect. One thing you could try to change the logic in https://github.com/dojo/dojo/blob/master/sniff.js where you find trident to be true to also set ie to true and a version to 11, and see if that fixes things for you. It's not a fix we would make, but something we can better document if that solves your problem.

Then within your app you could create your own app/has.js module that changes this definition, and use a map setting in your config to make sure that is applied throughout your app.

I'm getting ahead of myself though, first I'd suggest seeing if something is expecting an IE setting to be true.

comment:5 Changed 4 years ago by trac-o-bot

Resolution: invalid
Status: pendingclosed

Because we get so many tickets, we often need to return them to the initial reporter for more information. If that person does not reply within 14 days, the ticket will automatically be closed, and that has happened in this case. If you still are interested in pursuing this issue, feel free to add a comment with the requested information and we will be happy to reopen the ticket if it is still valid. Thanks!

Note: See TracTickets for help on using tickets.