OpenERP web接口严重依赖于javascript、QWeb、jQuery (我认为)和css。
默认视图在顶部有一个黑色菜单栏,左边有一个侧菜单栏,其余的是为所服务的内容而设的屏幕。
我试图“修复”的问题是,它被显示为一个大页面,这意味着如果您滚动页面,顶部菜单和侧菜单也会滚动。
我有一个几乎可行的解决方案:
为了做到这一点,我还必须添加一个新的css类,我称之为oe_main_window
,并定位了设置视图的代码,以便使用类oe_view_manager_current
将oe_main_window
添加到div
中。
这对于主要视图来说很好。
但是,如果我单击主视图中的一个链接,比如显示一个产品,它将删除oe_main_window
类并破坏显示。如果我进入开发工具并将oe_main_window
添加回来,则显示也是正确的。
我已经尝试搜索发生这种情况的地方,但是到目前为止,没有找到适当的代码来不删除新的类,或者在转换之后再添加它。
有什么想法吗?
发布于 2015-09-20 20:25:15
您可以在这里找到如何在DOM突变上放置断点:https://developer.chrome.com/devtools/docs/javascript-debugging#breakpoints-mutation-events
主要是使用F12打开chrome开发工具,右键单击div并单击“断开on...>>属性修改”。
发布于 2015-10-17 19:31:19
针对第一个oe_view_manager
的问题,找到了最终的解决方案。下面是(笨拙的) JavaScript:
function addOeMainWindow() {
var newChildren = [];
var currentChild, getAttr, oldClass, newClass;
var i;
for (i=0; i<document.childNodes.length; i+=1) {
newChildren.push(document.childNodes[i]);
}
while (newChildren.length > 0) {
currentChild = newChildren.shift();
getAttr = currentChild.getAttribute;
if (getAttr !== undefined) {
oldClass = currentChild.getAttribute("class");
if (/oe_view_manager/.test(oldClass) && !/oe_main_window/.test(oldClass)) {
newClass = oldClass + " oe_main_window";
currentChild.setAttribute("class", newClass);
return;
}
}
for (i=0; i<currentChild.childNodes.length; i+=1) {
newChildren.push(currentChild.childNodes[i]);
}
}
return;
}
https://stackoverflow.com/questions/32683826
复制相似问题