Js初探
- 
最近准备通过js来对oe的页面做一些默认没有的效果,先研究下页面的按钮要怎么样才能调用到js方法; 
 研究的思路如下:
 1、先要让js文件加载到页面;
 2、初始化js的对象;
 3、按钮的方法要能调用到js的对象的方法;这里有两种路径,一种是页面的按钮经过后台的python方法调用js方法,一种是在页面的按钮上定义onclick事件,直接调用;
 碰到的问题如下:
 1、通过在__openerp__.py文件中定义js,是可以加载js文件的,但是发现js文件加载到页面后,并没有初始化;
 解决办法:
 1、经过@深圳-Tommy的提醒,在js中定义的对象,必须和模块名相同;
 2、如果要页面的按钮上添加onclick事件,需要在按钮外面包<html>标签。
 老规矩,附上代码:
 openerp.py中的js文件引入:{...<br />    "installable" : True,  # 可否安装      <br />    'auto_install': False,          <br />    "category":u'保险',  # 模块类型<br />    'js': ['static/src/js/syt_insurance222.js',],<br />}
 js类定义如下:openerp.syt_insurance = function(instance) {<br /> instance.web.client_actions.add('bt_start', 'instance.syt_insurance.btn_start');<br /> instance.syt_insurance.btn_start = function() {<br /> var self = this;<br /> alert('test');<br /> return false;<br /> };<br />};<br />function aaa(){<br /> alert(123);<br />}<br />
 页面调用,通过python方法:<button name="call_js"  groups="base.group_erp_manager"  string="调用js方法" type="object"/>
 页面调用,直接通过onclick:<html><br /> <input type="button" value="获得设备代码" onclick="aaa(this)" class="oe_button oe_form_button_save"/><br /> </html>
 python类中定义的方法:def call_js(self, cr, uid, ids,context=None): <br />        context={}<br />        context["key"]="value"<br />        print "call——js..."<br />        ret = {<br />            'type': 'ir.actions.client',<br />            'tag': 'bt_start',<br />            'context': context,<br />        }<br />        return ret



