【问题标题】:class is being removed from a div类正在从 div 中删除
【发布时间】:2015-09-20 20:13:15
【问题描述】:

OpenERP Web 界面在很大程度上依赖于 javascript、QWeb、jQuery(我认为)和 css。

默认视图的顶部有一个黑色菜单栏,左侧有一个侧面菜单栏,屏幕的其余部分用于提供所提供的内容。

我试图“修复”的问题是它显示为一个大页面,这意味着如果您滚动页面,顶部菜单和侧边菜单也会滚动。

我有一个几乎可行的解决方案:

  • 将顶部菜单栏调整为固定
  • 将侧边菜单栏调整为固定
  • 调整余数以占用剩余空间

为了做到这一点,我还必须添加一个新的 css 类,我称之为 oe_main_window,并找到了设置视图的代码,以将 oe_main_window 添加到 divoe_view_manager_current .

这适用于主要视图。

但是,如果我单击主视图中的链接,比如显示产品,它会删除 oe_main_window 类并弄乱显示。如果我进入开发人员工具并添加 oe_main_window 回来,显示再次正确。

我已尝试搜索发生这种情况的位置,但到目前为止未能找到适当的代码,要么不删除新类,要么在转换后将其添加回来。

有什么想法吗?

【问题讨论】:

  • 使用 chrome 开发者工具,您可以添加 DOM 断点以准确查找何时以及谁删除了您的类
  • 我对 javascript 还是很陌生。您能否通过链接(或解释)来回答我将如何做这样的事情?

标签: javascript openerp odoo-8


【解决方案1】:

您可以在此处找到如何在 DOM 突变上放置断点: https://developer.chrome.com/devtools/docs/javascript-debugging#breakpoints-mutation-events

主要是使用 F12 打开 chrome dev-tools,右键单击您的 div 并单击“Break on...>> 属性修改”

【讨论】:

    【解决方案2】:

    该问题的最终解决方案涉及针对找到的第一个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;
    }
    

    【讨论】:

      猜你喜欢
      • 2016-05-21
      • 2013-04-26
      • 1970-01-01
      • 1970-01-01
      • 2011-02-08
      • 2015-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多