我正在使用Telerik RadEditor并且在图像管理器窗口中看到一些奇怪的行为,如下所示。
SiteCopy,Body Setup,Header Setup等标签都来自应该在窗口后面的页面,但它们以某种方式显示。单击并将窗口拖动到屏幕上的其他位置可修复该问题,但是,无法使用X或取消关闭窗口。当我在页面上稍微放大时,这似乎只发生在Chrome中。这是图像管理器的错误还是可以采取一些措施来防止这种行为?
由于
答案 0 :(得分:0)
尝试此主题中的提示:http://www.telerik.com/community/forums/button-click-fails-(sometimes) Chrome 39再次打破了互联网,因为它开始为过去常规的属性返回十进制值,这可能导致脚本错误。
尝试以下方法:
在主页上使用RadScriptManager
线程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);
};
}