Reputation: 2244
So, I've got this aspx page which includes 4 javascipt files like so:
<script src="Scripts/invoicePrimary.js" type="text/javascript"></script>
<script src="Scripts/invoiceBillOfLading.js" type="text/javascript"></script>
<script src="Scripts/invoiceCharge.js" type="text/javascript"></script>
<script src="Scripts/invoiceInvoice.js" type="text/javascript"></script>
Each of those defines a variable. invoicePrimary declares classPrimary
, invoiceBillOfLading defines classBillOfLading
, etc.
Later on in the page, we make reference to classPrimary
, which makes reference to the others. The problem is that only half of them are defined. Specifically, classPrimary
and classCharge
are defined, while classBillOfLading
an classInvoice
are undefined.
This only happens in IE. Both in IE9 and IE9 acting as IE8. The whole site is designed for IE, so the rest of the stuff doesn't work in other browsers, but this part does. Does anyone have any ideas? Edit: As a note, all files are loaded as seen in Visual Studio's Script Documents folder.
Edit: The actual code which has problems:
populateScreenFromObject: function() {
if (invoiceFolder == null) return;
if (invoiceFolder.BillOfLadings != null) classBillOfLading.AddList(invoiceFolder.BillOfLadings);
if (invoiceFolder.Invoices != null) classInvoice.AddList(invoiceFolder.Invoices);
if (invoiceFolder.Charges != null) classCharge.FirstTimeLoad(invoiceFolder.Charges);
classInvoice.FirstTimeLoad();
classCharge.DisableNonDraftRadios();
classBillOfLading.Add(); // In case BOL number is prepopulated
},
This is a function in classPrimary
, which is called from the main page like so: classPrimary.PopulateScreen();
At this point, classCharge
is the only one of those classes which is defined. The only thing that happens before this is loading invoiceFolder
data from json stored in a hidden field.
Upvotes: 3
Views: 5879
Reputation: 2244
As it turns out, the problem was that the invoiced*.js files that weren't loading had a , at the end of the last function, so it wasn't expecting to end. IE8 just ignored this, as did other browsers, but IE9 threw a fit.
Upvotes: 2
Reputation: 37506
Try it in the real IE8. IE9 has caused a lot of breakage in IE.
Upvotes: -1