Telerik RadEditor图像管理器窗口未正确显示

时间:2014-12-12 17:01:30

标签: telerik radeditor

我正在使用Telerik RadEditor并且在图像管理器窗口中看到一些奇怪的行为,如下所示。

Image Manager Issue

SiteCopy,Body Setup,Header Setup等标签都来自应该在窗口后面的页面,但它们以某种方式显示。单击并将窗口拖动到屏幕上的其他位置可修复该问题,但是,无法使用X或取消关闭窗口。当我在页面上稍微放大时,这似乎只发生在Chrome中。这是图像管理器的错误还是可以采取一些措施来防止这种行为?

由于

1 个答案:

答案 0 :(得分:0)

尝试此主题中的提示:http://www.telerik.com/community/forums/button-click-fails-(sometimes) Chrome 39再次打破了互联网,因为它开始为过去常规的属性返回十进制值,这可能导致脚本错误。

尝试以下方法:

  1. 在主页上使用RadScriptManager

  2. 线程abocve中的脚本覆盖可能是您正在寻找的解决方案:

    if (document.documentElement.getBoundingClientRect) {
        $telerik.originalGetLocation = function (element) {
            var e = Function._validateParams(arguments, [
                { name: "element", domElement: true }
            ]);
            if (e) throw e;
            if (element.self || element.nodeType === 9 ||
                (element === document.documentElement) ||
                (element.parentNode === element.ownerDocument.documentElement)) {
                return new Sys.UI.Point(0, 0);
            }
    
            var clientRect = element.getBoundingClientRect();
            if (!clientRect) {
                return new Sys.UI.Point(0, 0);
            }
            var documentElement = element.ownerDocument.documentElement,
                offsetX = Math.round(clientRect.left) + documentElement.scrollLeft,
                offsetY = Math.round(clientRect.top) + documentElement.scrollTop;
            if (Sys.Browser.agent === Sys.Browser.InternetExplorer) {
                try {
                    var f = element.ownerDocument.parentWindow.frameElement || null;
                    if (f) {
                        var offset = (f.frameBorder === "0" || f.frameBorder === "no") ? 2 : 0;
                        offsetX += offset;
                        offsetY += offset;
                    }
                }
                catch (ex) {
                }
                if (Sys.Browser.version === 7 && !document.documentMode) {
                    var body = document.body,
                        rect = body.getBoundingClientRect(),
                        zoom = (rect.right - rect.left) / body.clientWidth;
                    zoom = Math.round(zoom * 100);
                    zoom = (zoom - zoom % 5) / 100;
                    if (!isNaN(zoom) && (zoom !== 1)) {
                        offsetX = Math.round(offsetX / zoom);
                        offsetY = Math.round(offsetY / zoom);
                    }
                }
                if ((document.documentMode || 0) < 8) {
                    offsetX -= documentElement.clientLeft;
                    offsetY -= documentElement.clientTop;
                }
            }
            offsetX = Math.round(offsetX);
            offsetY = Math.round(offsetY);
            return new Sys.UI.Point(offsetX, offsetY);
        };
    

    }