Эквивалентно showModalDialog
У меня есть веб-приложение, в котором есть вызов showModalDialog, но по какой-то причине это не поддерживается Chrome, и я все же искал обходной путь, но безуспешно.
ShowModalDialog отображает страницу aspx с полем поиска, и сетка будет отображаться со всеми точками, когда пользователь выбирает любую ссылку deptname, имя должно отображаться в текстовом поле paren window.
function DisplayDept()
{
var Object = window.showModalDialog('../DeptList.aspx', null, 'location=0,center:yes,status=0,scrollbars=1,width=500,height=500');
if (Object != null)
{
document.getElementById("<%=hdnDept.ClientID%>").value = Object.id;
if(document.getElementById("<%=txtDname.ClientID%>").value!=Object.name)
{
document.getElementById("<%=txtDname.ClientID%>").value=Object.name;
__doPostBack(document.getElementById("<%=txtDname.ClientID%>").name,'');
}
}
}
function LinkSelected(intCD, strName)
{
var obj=new Object();
obj.id=intCD;
obj.name=strName;
window.returnValue = obj;
window.close();
}
Пробовал с методом window.open, но не смог передать выбранное поле из открытого окна в родительский элемент управления, задаваясь вопросом, что было бы идеальным решением для этого, поскольку я использовал asp.net web. приложение. Любое предложение / помощь по этому вопросу может помочь.
1 ответ
Сейчас я решил использовать windows.open, как показано ниже.
function DisplayDept()
{
var Object = window.open('../DeptList.aspx', null, 'location=0,center:yes,status=0,scrollbars=1,width=500,height=500');
}
с последующим
function SetDept(Object) {
if (Object != null)
{
document.getElementById("<%=txtDname.ClientID%>").value=Object.name;
__doPostBack(document.getElementById("<%=txtDname.ClientID%>").name,'');
}
}
А в детских окнах
function SelectIt(intTypeCD, strTypeName)
{
var obj=new Object();
obj.id=intCD;
obj.name=strName;
window.opener.SetDept(obj);
window.close();
}