luzhox / ie7-js

Automatically exported from code.google.com/p/ie7-js
0 stars 0 forks source link

IE9 compatibility view crashes on ie8.js & ie9.js #334

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. turn on ie9 compatibility view
2. visit your site with ie. ie8.js or ie9.js
3. IE9 wil crash

What version of the product are you using? On what operating system?
- Current version: 2.1 beta4. 
- IE9 
- WIN7 64bit

Original issue reported on code.google.com by bertus.g...@gmail.com on 19 Jul 2011 at 11:59

GoogleCodeExporter commented 8 years ago
Reproduced the issue with identical configuration.

Original comment by lee.hil...@leezilla.net on 20 Jul 2011 at 11:26

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
I've got the same problem here.

Error Reported:
Line: 6
Character: 10262
Code: 0
Error Message: Object doesn't support property or method 'toLowerCase'
URL: http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE8.

What steps will reproduce the problem?
1. turn on ie9 compatibility view
2. visit your site with ie. ie8.js
3. IE9 wil crash

What version of the product are you using? On what operating system?
- Current version: 2.1 beta4. 
- IE9 
- WIN7 32bit

Original comment by hectorgr...@gmail.com on 3 Aug 2011 at 2:18

GoogleCodeExporter commented 8 years ago
I have also Reproduced the issue.
- Current version: 2.1 beta4. 
- IE9  BrowserMode: IE9 CompactView DocumentMode: IE9 standards
- WIN7 32bit

Original comment by devote...@googlemail.com on 24 Aug 2011 at 1:13

GoogleCodeExporter commented 8 years ago
Happening here as well. If you change line 891 from

var split = media.toString().toLowerCase().split(/\s*,\s*/);

to

var split;
try {
  split = media.toLowerCase().split(/\s*,\s*/);
} catch (ex) {
  split = media.toString().toLowerCase().split(/\s*,\s*/);
}

it will work against them all. IE9 is unable to call toLowerCase() on media 
without calling toString() first.

Original comment by fluffyde...@gmail.com on 12 Jul 2012 at 10:49

GoogleCodeExporter commented 8 years ago
I'm trying to reproduce this issue but am unable to.  Could anyone clarify 
whether IE9 itself encounters a hard crash?

What I'm seeing is that it doesn't actually crash, but I do get a 'Webpage 
error' dialog asking if I want to debug the webpage.  The error is "Object 
doesn't support property or method 'toLowerCase'".  Is this what everyone else 
is seeing, or are my results unique?

Win7
IE9
Version: 9.0.8112.16421
Update Versions: 9.0.8 (KB271977)

Version: 2.1 beta 4
Actually, I just have this pulled out of the file into a test .html file for 
ease of debugging:
var styleSheets = document.styleSheets;
// Load all style sheets in the document
for (var i = 0; i < styleSheets.length; i++) {
  var styleSheet = styleSheets[i];
  if (!styleSheet.disabled && !styleSheet.ie7) {                
    var split = styleSheet.media.toLowerCase().split(/\s*,\s*/);
  }
}

Original comment by mithlond...@gmail.com on 13 Jul 2012 at 5:46

GoogleCodeExporter commented 8 years ago
Reproduced on:
- Current version: 2.1 beta4. 
- IE9  Version: 9.0.8112.16421, Update version: 9.0.11, Browser Mode: IE9 
Compact View, Document Mode: IE9 standards (and sometimes happens when 
switching Browser Mode and/or Document Mode)
- WIN7 32bit

As suggested above, toString() call before toLowerCase() fixes the issue:

media.toString().toLowerCase().split(/\s*,\s*/);

Because typeof media == 'object' when this bug is reproduced.

console.dir(media) gives:

LOG: all {
    length : 0,
    mediaText : "all",
    appendMedium :  function appendMedium() {     [native code] } ,
    deleteMedium :  function deleteMedium() {     [native code] } ,
    item :  function item() {     [native code] } ,
    toString :  function toString() {     [native code] } 
} 

Original comment by vlad....@gmail.com on 28 Nov 2012 at 1:28