在不设置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/

10-12 22:33