以下 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/