JavaScript代码不能在Windows 7中获取控件,但可以在xp中获取

时间:2010-11-24 15:52:13

标签: javascript ajax debugging

以下用于工作的javascript函数:

  function tbComment_onKeyDown(ID) {
      var commentPop = $find("WebDialogWindowComment")
      commentPop.set_windowState($IG.DialogWindowState.Normal);
      commentID = ID;

      var thePopUpTb = $get("WebDialogWindowComment$tmpl$tbCommentPopUp");
      thePopUpTb.focus();
      thePopUpTb.value = commentID.value;      
}

它在我的aspnet(3.5)表单上的文本框上执行了onKeyDown,它导致了一个infragistics WebDialogWindow变为可见,将焦点设置为该窗口中的文本框,并复制到原始texbox中的任何文本到文本框在WebDialogWindow中。

现在,$ get(“WebDialogWindowComment $ tmpl $ tbCommentPopUp”);返回null。当我在页面上查看View Source时,WebDialogWindowComment $ tmpl $ tbCommentPopUp就在页面上。

我正在运行代码(webbrowser in)vs2008。从它工作到现在我能想到的唯一区别是我从vista升级到windows7。我不是在使用JQuery。

此外,此代码通过vs2008在另一台xp机器上运行。

并且,开发服务器(xp机器)上的应用程序在我的Windows 7机器上运行。

任何人都可以帮忙解决这里发生的事情吗?

1 个答案:

答案 0 :(得分:1)

WebDialogWindowComment$tmpl$tbCommentPopUp看起来像一个元素名称。 $get()适用于元素ID,而不是名称。尝试:

var thePopUpTb = $get("WebDialogWindowComment_tmpl_tbCommentPopUp");

在版本8之前,Internet Explorer错误地接受了document.getElementById()方法中的元素名称。这可能就是为什么你的代码在Windows XP上的IE7下工作的原因。