Twitter widget stops page from rendering in IE 8, anybody know why?

16,043

Solution 1

The problem is a single bug, which is easily rectified, as reported by (horror!) the hyphen site.

The caveat is, you'll have to download and host the "widget.js" file yourself to do this (26.7k), but, on the sunny side - you can make fine-grained changes to the widget that the original twitter page doesn't support.

This worked for me in IE8. I had been getting the 'Object doesn't support this property or method' js error.

Solution 2

Solution to the problem is:

<script type="text/javascript" src="2.js"></script>
<body>
<script type="text/javascript">
 new TWTR.Widget({
  version: 2,
  type: 'search',
  search: 'hakarito',
  interval: 6000,
  title: 'what people say about...',
  subject: 'Botball Online',
  width: 250,
  height: 300,
  theme: {
    shell: {
       background: '#007CC2',
       color: '#FFFFFF'
    },
    tweets: {
      background: '#000000',
      color: '#ffffff',
      links: '#f59f00'
    }
  },
  features: {
    scrollbar: false,
    loop: true,
    live: true,
    hashtags: true,
    timestamp: true,
    avatars: true,
    toptweets: true,
    behavior: 'default'
  }
}).render().start();
</script> 
</body>

The solution is that your script has to be within the <body>

Solution 3

You might be interested in http://www.webdeveloper.com/forum/showthread.php?t=224530

They suggest adding defer="defer" to the script tag that loads widget.js, so that it will not load until the page is completely ready. Not sure if this is the cause of your problem or not, but it might help.

<script defer="defer" src="http://widgets.twimg.com/j/2/widget.js" type="text/javascript"></script>

Solution 4

I was having a problem running the Twitter List Widget on my Microsoft Internet Explorer 8 also. The widget would appear but no information inside would stream. It would work fine in FireFox or other browsers, just not in IE. The problem I found was with Twitter widget.js file that was being called from the source they provided for me to paste on my site.

The actual .js file that is on the Twitter server has an error in it that won't allow the IE browser to display the stream. I was able to fix this rather simply. I downloaded the .js file by pasting the path in my browser:

http://widgets.twimg.com/j/2/widget.js

Once I had the .js file, I opened it using notepad to view the source. The change that needs to be made is simple, use the "Find" command in notepad to look for the word "array" and when it finds the entry, make the following change:

Change the entry that says “Array.forEach” in the widget.js file to read “Array.prototype.forEach”

By adding the word "prototype" you have now corrected their mistake. Of course you can't upload the file to their server so just place it in a directory on your site and path to it directly by changing the path in your Twitter generated source to point to the .js files new location on your website.

I hope this helps! Have a great day! Brian J. www.EnjoyTheCove.com

Share:
16,043
digitalWestie
Author by

digitalWestie

A hacker and railsy guy working on a city guide app.

Updated on June 28, 2022

Comments

  • digitalWestie
    digitalWestie almost 2 years

    The widget works fine in Firefox but it completely stops the page from being rendered in IE8.

    This is the error report it gives me:

    Webpage error details

    User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Media Center PC 3.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) Timestamp: Fri, 23 Apr 2010 20:12:25 UTC

    Message: 'document.getElementsByTagName(...).0' is null or not an object Line: 9 Char: 8365 Code: 0 URI: http://widgets.twimg.com/j/2/widget.js

    Can anybody help?