WebTV's 2.5 upgrade introduced a number of changes and bugs in JavaScript. This has caused games, chats, and websites to fail that worked fine prior to the upgrade. This list is somewhat technical, but it will give advanced page builders an idea of where the pitfalls are.
1. Music stops playing when a form input is clicked (ie: form submitted), whether the form action is that of a "javascript:" function or not (for WebTV Plus without the upgrade, or any terminal with the upgrade). This might be to help pages load faster when a form is submitted, but this is not necessary for "javascript:" functions (especially in chats), as the user usually remains on the same page. (By music, we mean MIDI or RealMedia.)
2. <body instructions="WHATEVER_HERE"> mistakenly creates two Instructions buttons instead of 1 (upgraded boxes only). Furthermore, it no longer accepts a JavaScript function as "WHATEVER_HERE", for example, <body instructions="javascript:get_help()//">, and sometimes even takes the user to a black screen with nothing but the function as the page title. Lastly, even if an HTML page is used as "WHATEVER_HERE", it still no longer works, as it refuses to load the page (it just appears to load forever).
3. When too many images are on a page, some images disappear. The number of acceptable images has not been pinpointed, but in our case, before we made some tweaks that somehow fixed the problem, we saw this occur on an 8 x 8 checker board (about 64 images). This seems to happen all too frequently on the old WebTV classic (with the upgrade). This is likely due to a caching problem and will likely require a client upgrade. WebTV says it is having difficulties pinpointing this bug because it isn't predictable.
4. JavaScript functions, when used in links, sometimes take the user to a blank page, with the function in the title bar (upgrade only). Example: <a href="javascript:get_help()//">click here</a>
We assume this is a result of the changed event model, which will bring a user to a new page when a math function is clicked, like <a href="javascript:1+3">click here</a>.
5. The "onkeypress" model is not supported in all upgraded units, as mentioned on WebTV's official developer site. Upgraded older-model Classics don't seem to support this. Since there is no longer a way to detect the difference between Old Classics and New Classics, using this model will be a problem.
6. Upgraded Terminals wrongly report simple mathematics with regard to integers. Let's say a script compares to numbers. One is an integer, say 12, while the other is a floating-point number with the same integer part, say 12.5. WebTV thinks that they are equal. For example, the following are reported as "false" on old WebTVs, but "true" on upgraded boxes: (1 == 1.1), (2.0 == 2.9), (3.3 == 3). Furthermore, the following are reported as "true": (1 < 1.1), (2.0 < 2.9), (3.3 > 3).
You can view this for yourself if you go to: Link 1 Link 2
A good illustration of the problems the "new math" will cause is in our checkers game: ORIGINAL:http://www.net4tv.com/net4tv/games/checkers_old/ FIXED: http://net4tv.com/net4tv/games/checkers/
(Both games work properly on Windows and Mac Internet Explorer.)
On an upgraded box, the original version of the game misidentifies JavaScript and it makes every piece a "King." This is due to the JellyScript identifier and the new math, respectively.
We were able to rewrite the code to work on WebTV, but the point is, most website developers won't do that, so WebTV users will run into problems. The JellyScript identifier causes the old checkers game to display an error message, even though the JavaScript does run, albeit incorrectly. Some websites will redirect users to error pages telling them they need a 4.0 browser.
WebTV has acknowledged that JellyScript does not accurately compare real numbers. This problem will need to be addressed in a future client update.
7. Sometimes, WebTV units first report that "This is a type of file that WebTV cannot play" when a user clicks on a Windows Media file. Then, it will play the file anyway.
8. The Recent panel (in upgraded boxes) appears, but not always with the thumbnail previews (small pictures) intact.
9. Old WebTV Classics with the upgrade refuse to play .MPG or .MPEG video files.
10. Upgraded users wishing to listen to a G2 (or lower) RealAudio file will sometimes experience "The publisher is too busy," when sometimes that is not the case at all. This has been confirmed with a crystal clear RealAudio server, with zero listeners at the time.
11. Upgraded WebTV Terminals do not recognize the start and stop parameters in RealAudio Metafiles (RAM files). This was previously working before the upgrade, and allowed web sites to reference part of a larger RealAudio file as a sound clip.
12. All upgraded WebTV Terminals report themselves as "WebTV;2.5". As older WebTV Classics do not support everything the newer Classics support, for example, this is not beneficial. Web developers can not serve site content that is specific to either browser, as it cannot tell them apart. (Why did WebTV Classic jump from 1.4 to 2.5 so quickly? WebTV says it's because all WebTVs, except the DISHPlayer, are based on the same computer code. But, there are some important differences.)
13. WebTV reports its JavaScript implementation as "JellyScript". This is fine and well, but sites that have <script> tags with "language" parameters specified are prone to display wrong on a WebTV. For example, I had a site that specified <script LANGUAGE="JavaScript1.1">.
Within that tag, I referenced "document.location" to parse a "METHOD=GET" form submission. The upgraded model refused to read it correctly. Although, when I removed the LANGUAGE parameter and left <script> by itself, it read it correctly. This causes some pages to not function. Some sites will kick users to an error page that says they need an upgraded browser.
14. Upgraded boxes support Flash content in strange ways. Example: http://www.net4tv.com/net4tv/games. Previously, one could use "mouseOver" in Flash, and it would be correctly supported on WebTV (in this case, the user would place the selection box over the link, and it would trigger the mouseOver event). Now, when one selects the link, instead of triggering the event, it brings up the slow, moveable pointer. When the user finally chooses to click on the link, the mouseOver event is finally triggered. One more click activates the link. (We are in the process of eliminating the "hit state" from the Flash buttons. This is a downgrade in functionality.)
15. Printer support on printers that worked before the upgrade is not quite the same in some cases. From the Net4TV Voice: 'Some of the affected printers included the Canon BJC-2000 with a new Classic won't print, Philips Magnavox Old Plus with a Canon BJC-210 says "No Ink cartridge found"; HP-672c won't halt printing, and prints poor photo quality.' WebTV has identified that this is due to the way WebTV dynamically loads printer drivers as needed. A few of the drivers didn't make the transition. WebTV says they will be fixing this problem shortly.
16. Upgraded WebTV Plus doesn't always get TV listings correctly. In my case, the listings "froze" 2 or 3 times before it finally fetched them. We've also seen WebTV become unable to control other devices through the IR blaster. This is used to tune cable boxes, and to control VCRs. We set ours up and it worked. But then during our TV-watching session, the set-up needed to be repeated.
17. The back button on upgraded boxes behaves in strange ways. Sometimes it will work; other times it will send you back further in the surf "history."
18. Upgraded boxes perform more slowly with regards to JavaScript. The MSN Messenger interface also seems to slow things down substantially. WebTV has said they intend to fine tune the performance of the Messenger to lessen the impact. They had no timeframe.
19. Addresses added to the address book in upgraded boxes sometimes refuse to appear in the address box. For example, an address was added to the address book on a WebTV Plus. Then, when the "TO:" line was clicked to bring up that address, when an email was being written, the box reported that the addresses were "Empty".
20. When "loop=true" was specified in an embedded file on non-upgraded terminals, a MIDI for example, the file would loop infinitely. Now, with upgraded boxes, it loops once, and then stops. Now it requires loop=-1. This appears to be a change to the Internet Explorer codebase. (This isn't really a bug, but an incompatibility with prior versions.)
21. JavaScript and frames are sometimes disabled when the page loads, and reappear when the page is reloaded a few times. This has been a recurring problem for 3 years.
Previously in Net4TV Voice: Users Report Problems
with WebTV 2.5 Upgrade