在不设置set_modal属性值为true的情况下打开RadWindow时如何禁用父页面?
var oWnd = radopen(finalURL, null, width, height);
oWnd.setUrl(finalURL);
oWnd.set_modal(true); //// Without this line ?
oWnd.set_visibleStatusbar(false);
oWnd.show();
return oWnd;
最佳答案
在旧版本的iframe中,由于IE错误,可能会在IE下引发错误。此问题在更高版本中已修复,因此您应该升级。此处提供更多详细信息:http://www.telerik.com/support/kb/aspnet-ajax/window/details/opening-a-modal-radwindow-on-page-load-inside-radwindow-under-ie9-and-ie10。
解决此问题的方法本质上是在对话框出现之前集中某些内容,例如:
function fix()
{
document.documentElement.focus();
Sys.Application.remove_load(fix);
}
Sys.Application.add_load(fix);
否则,您可以使用自己的div模仿模式背景div。这是一个示例(即使它以RadNotification控件为目标:http://www.telerik.com/support/kb/aspnet-ajax/notification/details/how-to-make-a-modal-radnotification。
这是本质:
function showModalDiv(sender, args)
{
if (!modalDiv)
{
modalDiv = document.createElement("div");
modalDiv.style.width = "100%";
modalDiv.style.height = "100%";
modalDiv.style.backgroundColor = "#aaaaaa";
modalDiv.style.position = "absolute";
modalDiv.style.left = "0px";
modalDiv.style.top = "0px";
modalDiv.style.filter = "progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=50)";
modalDiv.style.opacity = ".5";
modalDiv.style.MozOpacity = ".5";
modalDiv.setAttribute("unselectable", "on");
modalDiv.style.zIndex = (sender.get_zIndex() - 1).toString();
document.body.appendChild(modalDiv);
}
modalDiv.style.display = "";
}
function hideModalDiv()
{
modalDiv.style.display = "none";
}
还有一些事件处理程序:
和一些CSS以确保贴合视口:
html, body, form
{
margin: 0;
padding: 0;
height: 100%;
}
关于javascript - 如何在没有set_modal(true)的情况下打开RadWindow时禁用父页面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32583697/