我有一个由一个文本框和按钮组成的表单。单击按钮会出现一个弹出窗口,其中包含一个数据网格,我可以从中选择值,这样该值就会出现在文本框中(使用javascript)。在IE6和IE7中,我可以在弹出窗口中从网格中选择值,但在IE8中,Mozilla和chrome iam无法选择。可能是什么原因。任何人都可以帮助解决这个问题? 以下javascript我习惯将弹出窗口中选择的值绑定到文本框。 函数PassBack(FieldId,FieldValue) {
if (window.opener && !window.opener.closed)
{
window.opener.document.getElementById(strFieldName).value = FieldValue;
window.opener.document.getElementById(strhidFieldName).value = FieldId;
window.opener.document.getElementById(strFieldName).focus();
window.close();
}
}
function openPopup(hidfield_name,field_name,SType)
{
url = location.protocol+'//'+ location.host + '/User/Search.aspx?refId='+field_name+'&SearchType='+SType+'&hidid='+hidfield_name;
if (!newwindow.closed && newwindow.location)
{
newwindow.location.href = url;
}
else
{
GetCenterWindowParams();
newwindow=window.open(url,'winLOV', 'scrollbars=yes,resizable=yes,width=470,height=400,screenX='+xOffset+',screenY='+yOffset+',top='+yOffset+',left='+xOffset+'');
if (!newwindow.opener) newwindow.opener = self;
}
if (window.focus) {newwindow.focus()}
return false;
}
以下是我在网格的数据绑定中调用的代码。
currentCell.Attributes.Add("OnClick", "javascript:PassBack('" & CType(e.Item.DataItem, DataRowView).Row(0) & "','" & str.Trim & "');")
答案 0 :(得分:1)
不用看你的代码。但似乎你正在使用一些IE特定的JavaScript。
答案 1 :(得分:0)
几个关键点:
1。)由于这会影响IE8和所有其他浏览器,因此非常可能已经被IE8中的修复程序捕获,无法正确实现document.getElementById(id)
。在以前的IE版本中,IE将返回匹配的匹配项。)dIfFeReNt CaSe匹配, AND 元素具有匹配的“name”属性。这是实现中的主要错误,但很多站点都是基于IE的bug构建代码的。的(bug report and fix for IE versions before IE8)强>
2.。)你的:
GetCenterWindowParams();
功能填充?我没有看到你从哪里获得你的xOffset,yOffset值。
3。)你在某处定义“自我”吗?除非你已经定义了它,否则“self”不是“this”的同义词。