Opened 6 years ago

Closed 6 years ago

#6024 closed defect (fixed)

Errors when moving / opening dialogs in IE7

Reported by: guest Owned by: doughays
Priority: high Milestone: 1.1
Component: Dijit Version: 1.1b1
Keywords: Cc:
Blocked by: Blocking:

Description

Upgraded a Dojo application in development to 1.1b1 / 1.1b2 and started having problems under IE 7 showing dialogs that were working previously. On open or moving a dialog, IE 7 is generating "Invalid Argument: Line 0" errors. Debuggers for IE (VS2005 and MS Script debugger) cannot show line of code generating error.

Same code on FFox works without any problems at all.

After spending some time, generated the sample test file below that reproduces the issue. To test, open dialog by clicking on the button and then try to move the dialog around on the screen, or close it. Debug console will get the Invalid Argument messages and/or IE will crash.

<!DOCTYPE HTML PUBLIC "-W3CDTD HTML 4.01EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Opportunity Planner</title>
<style type="text/css">

@import "../../common/dojo/dijit/themes/tundra/tundra.css";

</style>
<script type="text/javascript" src="../../common/dojo/dojo/dojo.js.uncompressed.js"

djConfig="isDebug:true, parseOnLoad: true"></script>

<script type="text/javascript">

dojo.require("dojo.parser");
dojo.require("dijit.layout.ContentPane");
dojo.require("dijit.form.TextBox");
dojo.require("dijit.form.CheckBox");
dojo.require("dijit.form.DateTextBox");
dojo.require("dijit.form.Button");
dojo.require("dijit.Dialog");
dojo.require("dijit.form.FilteringSelect");
dojo.require("dijit.form.NumberTextBox");
dojo.require("dijit.form.ValidationTextBox");

function showCreateDialog() {

dijit.byId('createOpportunityDialog').show();

}

</script>

</head>
<body class="tundra">

<button id="create" dojoType="dijit.form.Button"

iconClass="commonNewIcon">Create

<script type="dojo/method" event="onClick">showCreateDialog();</script>

</button>

<!-- Create Dialog Hook -->
<div dojoType="dijit.Dialog" id="createOpportunityDialog"

title="Create New Opportunity"

<div id="generalTab" dojoType="dijit.layout.ContentPane" title="General" style="height:600px;width:600px">

<table>

<tr>

<td style="text-align:right;"><label for="generalTab_name">Name:</label></td>
<td colspan="3">

<input id="generalTab_name" dojoType="dijit.form.ValidationTextBox" type="text" size="80"

maxlength="100"
required="true">

</td>

</tr>
<tr>

<td style="text-align:right;"><label for="generalTab_status">Status:</label></td>
<td>

<select id="generalTab_status" dojoType="dijit.form.FilteringSelect">

<option value="NS">Not Started</option>
<option value="IP">In Progress</option>
<option value="C">Complete</option>
<option value="S">Suspended</option>

</select>

</td>
<td style="text-align:right;" colspan="1"><label for="generalTab_targetDate">Target Completion

Date:</label></td>

<td>

<input id="generalTab_targetDate" dojoType="dijit.form.DateTextBox" size="9" maxlength="9">

</td>

</tr>
<tr>

<td style="text-align:right;"><label for="generalTab_priority">Priority:</label></td>
<td>

<select id="generalTab_priority" dojoType="dijit.form.FilteringSelect" style="width:50px">

<option value="L">Low</option>
<option value="M">Medium</option>
<option value="H">High</option>

</select>

</td>
<td style="text-align:right;"><label for="generalTab_risk">Risk:</label></td>
<td>

<select id="generalTab_risk" dojoType="dijit.form.FilteringSelect">

<option value="N">None</option>
<option value="L">Low</option>
<option value="M">Medium</option>
<option value="H">High</option>

</select>

</td>

</tr>

</table>

</div>


</div>
</body>
</html>

Change History (5)

comment:1 Changed 6 years ago by peller

  • Component changed from General to Dijit
  • Owner anonymous deleted

comment:2 Changed 6 years ago by doughays

This is a regression caused by revision [11952]

comment:3 Changed 6 years ago by doughays

  • Owner set to doughays

comment:4 Changed 6 years ago by doughays

The IE css expression() is throwing an exception.

comment:5 Changed 6 years ago by doughays

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

(In [12806]) Fixes #5562, #6024. Re-evaluation of IE's CSS expressions was causing a slow down. Occasionally the expressions would throw an error causing the "Invalid argument".
Removed IE font-style and font-weight inheritance from input tags used in dijit widgets to prevent css expression re-evaluation. Font-family and font-size are still inherited by child input nodes as before, but if the parent node's font-family changes (unlikely), the child input node will not pick up the change. This prevents constant css expression re-evaluation. All font attributes can still be specified for the input node if the IE defaults are not acceptable.

Note: See TracTickets for help on using tickets.