JavaScript 代码在 windows7 中无法 $get 控件,但在 xp 中可以

标签 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 变得可见,将焦点设置到该窗口中的文本框,并将原始文本框中的任何文本复制到文本框中在 WebDialogWindow 中。

现在,$get("WebDialogWindowComment$tmpl$tbCommentPopUp");返回 null。当我查看页面上的“查看源代码”时,WebDialogWindowComment$tmpl$tbCommentPopUp 位于页面上。

我正在通过( )vs2008 中的网络浏览器运行代码。我能想到的与它工作时到现在的唯一区别是我从vista升级到了windows7。我没有使用 JQuery。

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

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

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

最佳答案

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

var thePopUpTb = $get("WebDialogWindowComment_tmpl_tbCommentPopUp");

在版本 8 之前,Internet Explorer 错误地接受了其 document.getElementById() 中的元素名称。方法。这可能就是您的代码可以在 Windows XP 上的 IE7 下运行的原因。

关于JavaScript 代码在 windows7 中无法 $get 控件,但在 xp 中可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4268704/

相关文章:

javascript - 分配给数组的对象在加载 splice 时不想从索引 1 开始

javascript - 如何在错误消息中包含其他字段的值

javascript - POST Slim 路线不起作用

javascript - Rails3.1 无限/无限滚动

debugging - 当前本地调试 Travis 构建的工作流程是什么?

debugging - 是否有可能将 "decompile"写入 Windows .exe?或者至少观看 assembly ?

.net - 加载 SOS 扩展进行调试

javascript - 如何使用相同的功能以不同的方式切换多个文本 block /按钮?

javascript - 不同电脑上的游戏循环速度不同

javascript - WebService C# (Ajax) 中缺少参数