javascript-如何自定义OpenERP 6.1 WebClient HTML DOM?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-如何自定义OpenERP 6.1 WebClient HTML DOM?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1791字,纯文字阅读大概需要3分钟。
内容图文
![javascript-如何自定义OpenERP 6.1 WebClient HTML DOM?](/upload/InfoBanner/zyjiaocheng/656/1cc84e3e78d14f3083b68185b166f795.jpg)
OpenERP Web客户端的页面可以很宽,在列表视图中有很多列.在短屏幕上,这是一个麻烦,因为居中菜单超出了内容的右侧.我决定为此找到一个快速解决方案:使菜单向左对齐.对于普通网站,这对于标准JQuery来说可谓小菜一碟,但是这个OpenERP网站几乎完全是用JS生成的!
生成的HTML具有以下菜单结构:
<div class="menu" id="oe_menu">
<table align="left">
<tbody>
<tr>
<td>
<a href="#" data-menu="3">
Settings
</a>
</td>
<!--other menus...-->
</tr>
</tbody>
</table>
</div>
使用JQuery的方法是(在JS控制台中测试):
$('div.menu table[align=center]').attr('align','left');
尽管通常的$(document).ready()会失败,因为加载DOM的时间仅仅是OpenERP Web客户端的初始化.
我的要求是,这需要从模块进行管理. Simahawk得到了类似主题hooking into the logout event的答案,该主题为我指明了正确的方向,但没有解决我的任务.
解决方法:
我从web_livechat模块中找到并修改了一段代码,该代码终于起作用了.我的模块称为camara,这很重要,因为必须在模块之后调用openerp对象的新方法-static / src / js / tweaks.js:
// openerp.camara(openerp) is executed when the module is loaded - UI is not rendered yet!
openerp.camara = function(openerp) {
// so we hook into (override) the Header do_update() call
// which is executed upon session validation by the WebClient
// we have to call the overriden parent method
// then we hook onto the update_promise
// which executes our code after the update is done.
openerp.web.Header.include({
do_update: function() {
var self = this;
this._super();
this.update_promise.then(function() {
// change menu alignment to the left
// because with wide views, it runs out of reach
$('div.menu table[align=center]').attr('align','left')
});
}
});
}
js文件需要包含在__openerp__.py中:
'js': ["static/src/js/tweaks.js"]
尚待解决的问题:
>您是否喜欢此方法并找到合适的方法?
>如果没有,请提供其他解决方案.
我自己觉得这很笨拙,这就是为什么要问.我考虑过使用CSS,但没有设法覆盖表的align属性.
内容总结
以上是互联网集市为您收集整理的javascript-如何自定义OpenERP 6.1 WebClient HTML DOM?全部内容,希望文章能够帮你解决javascript-如何自定义OpenERP 6.1 WebClient HTML DOM?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。