这个javascript有什么问题?

时间:2011-03-04 21:08:46

标签: javascript html

<script src="http://widgets.twimg.com/j/2/widget.js"></script>
<script>
   var usr = 'charliesheen';

   function changeusr()
   {
      usr = document.getElementById("usrText").value;
      updatetwitter();
   }

   var twitter;
   newtwitter();

   function updatetwitter()
   {
      twitter.render().setUser(usr).start();
   }

   function newtwitter()
   {
     twitter =
     new TWTR.Widget({
       version: 2,
       type: 'profile',
       rpp: 4,
       interval: 6000,
       width: 200,
       height: 300,
       theme: {
         shell: {
         background: '#ffffff',
         color: '#367542'
       },
       tweets: {
          background: '#e3dfe3',
          color: '#000000',
          links: '#110af5'
       }
     },
     features: {
        scrollbar: false,
        loop: false,
        live: false,
        hashtags: true,
        timestamp: true,
        avatars: false,
        behavior: 'all'
      }
    }).render().setUser(usr).start();
}
</script>
<br/>
Change user:
<input name="usrText"/>
<button onclick="changeusr()">Go</button>

我看到的结果是:它加载得很好。当我输入新用户名并单击“go”时,它可能会或可能不会重新加载twitter小部件,并且“加入会话”链接指向正确的URL。我希望它能够在输入新用户的情况下重新加载网址。我是一个完整的javascript noob。提前谢谢。

1 个答案:

答案 0 :(得分:5)

您的输入需要一个ID:

<input id='usrText' name="usrText"/>

Internet Explorer将从“getElementById()”按 name 返回元素,但这只是传统的破坏行为,并且不会被其他浏览器模仿。

编辑 - 更新:

似乎没有太多关于该小部件的文档。如果将“实时”功能设​​置为true,情况会好一些。此外,当您更新用户时,您必须在窗口小部件上删除内部变量:

function updatetwitter()
{
  twitter._profileImage = null;
  twitter.setUser(usr).render().start();
}

Here是jsfiddle,如果你想看到它。

相关问题