Bug #2009
Javascript errors prevent all tabs from showing in IE11
0%
Description
Internet Explorer 11 only appears to render the EPG and DVR tabs - other browsers on the same machine render all tabs, so my suspicion is that it's something about how IE parses the .js files.
Tested on multiple systems here and with another user. Discussion here:
https://tvheadend.org/boards/5/topics/11309?r=11314
And what I suspect is the original bug here, risen from the grave:
https://tvheadend.org/issues/1081
Javascript console errors:
SCRIPT1010: Expected identifier File: idnode.js, Line: 66, Column: 9 SCRIPT1028: Expected identifier, string or number File: mpegts.js, Line: 15, Column: 18 SCRIPT1010: Expected identifier File: status.js, Line: 56, Column: 11
Screenshot with supporting details attached.
Files
History
Updated by Prof Yaffle over 10 years ago
FWIW, I ran the offending files through javascriptlint.com... as well as various warnings about semicolons and curly braces, I got:
idnode.js:
66 if (f.enum.type == 'api') { ========^ SyntaxError: missing name after . operator
mpegts.js:
15 baseParams : { class : 'mpegts_network', enum: 1 }, =================^ SyntaxError: invalid property id
status.js:
56 r.data.in = m.in; ===============================^ SyntaxError: missing name after . operator
Updated by Prof Yaffle over 10 years ago
Looks like this is 99% a duplicate of issue #1973 - serves me right for not searching properly! That concludes that the problem is that this line from extjs.c is the problem:
97: htsbuf_qprintf(hq, "<meta http-equiv=\"X-UA-Compatible\" content=\"IE=8\">\n");
As far as I can see, this forces later editions of IE to operate as IE8. Combined with the above "syntax errors", I really can't say whether IE8 got it right (and the errors are real, so the issue is with the code) or whether IE8 got it wrong (and 9+ work properly, so the issues are with that earlier browser).
Upgrade everyone to Firefox, that's what I say :-)
By all means, close this one with no further debate if required.
Updated by Adam Sutton over 10 years ago
No everyone should use Chrome, as that's all I use :p and therefore when I dick about with the UI (which I try not to do too often) that's about the only thing garaunteed to work. And then it's only with the pre-bundled version of chromium on the latest Ubuntu LTS release :p
Looks like the errors relate to use of javascript keywords as identifiers. Meh!
Adam
Updated by Sam Stenvall over 10 years ago
@Prof Yaffle: does the problem go away if you remove the X-UA-Compatible header? If so I think it should be removed, there's no point in supporting IE8 if it breaks all newer versions.
Updated by Benjamin H over 10 years ago
Hi, looking at my inital bug report #1973 I must admit that I could have explained a bit more detailed what I did and what my findings were.
I am manually removing this line from my tvheadend builds for like 2 months or so. I am using Internet Explorer as main browser. In general IE11 (Win8.1), but tested versions 9 and 10 as well (Win7). All work just fine.(when X-UA-Compatible line is removed) Otherwise the webui is just useless on IE.
I just now quickly tested IE8 on an old Windows XP virtual machine. It doesn't matter which document mode you force IE8 into, the webui won't work. So in conclusion: Unless someone is willing to invest time to investigate how to get legacy IE8 working, just remove the X-UA meta tag.
Updated by Prof Yaffle over 10 years ago
In my heart, I'd vote for breaking IE8 at the expense of other browsers, though there may be a way to coexist (e.g. check the user-agent string and only insert this line if it reports IE8).
Sadly, we shouldn't simply abandon IE8, as it shipped with Win7 and so is technically supported for another year (13th January 2015 for Mainstream Support):
https://support.microsoft.com/lifecycle/default.aspx?LN=en-gb&x=17&y=12&c2=14019
Updated by Adam Sutton over 10 years ago
- Status changed from New to Rejected
Not doing browser validation checks, if someone fancies making the code fully multi-browser compatible I'll accept the fix. But there were loads of similar issues reported and no need really, we all know it's not very good!
Adam
Updated by Prof Yaffle over 10 years ago
Adam -
Two thoughts here (and I don't blame you for your rejection, as there are far bigger issues to worry about):
1. Would we be better off simply removing the X-UA-Compatible declaration, then? I suspect that would better support IE9+ but abandon IE8 to the wolves, which might be better than the way it is now.
2. I can't easily test this, not exactly being surrounded by Windows boxes, but some reading suggests you can use multiple modes - so content="IE=8; IE=Edge" should mean different things to IE8 and IE8+.
References:
http://msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx
http://stackoverflow.com/questions/14611264/x-ua-compatible-content-ie-9-ie-8-ie-7-ie-edge
... if anyone out there understands this better than me, that might be an option if we can test it on multiple versions?