7 odoo12 全屏模块开发

全屏功能开发:

1 定义web模板 t-name=”WebFullScreen”,预置全屏和退出全屏的a标签,退出全屏默认隐藏

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <template xml:space="preserve" >
  3. <t t-name="WebFullScreen">
  4. <li>
  5. <a class="full_screen" href="#">全屏</a>
  6. </li>
  7. <li><a style="display:none" class="not_full_screen" href="#">退出全屏</a></li>
  8. </t>
  9. </template>

2 通过js加载模块,并注册到系统工具栏

  1. FullScreenMenu.prototype.sequence = 0; # 排序位置
  2. SystrayMenu.Items.push(FullScreenMenu);

3 通过点击事件触发方法

  1. odoo.define('web_full_screen.FullScreen', function (require) {
  2. "use strict";
  3. var Widget = require('web.Widget');
  4. var SystrayMenu = require('web.SystrayMenu');
  5. var FullScreenMenu = Widget.extend({
  6. template: 'WebFullScreen',
  7. events: {
  8. 'click .not_full_screen': '_onNotFullScreen',
  9. 'click .full_screen': '_onFullScreen',
  10. },
  11. _onNotFullScreen: function () {
  12. var de = document;
  13. if(de.exitFullScreen) {
  14. de.exitFullScreen();
  15. } else if(de.mozCancelFullScreen) {
  16. de.mozCancelFullScreen();
  17. } else if(de.webkitExitFullscreen) {
  18. de.webkitExitFullscreen();
  19. } else if(de.msExitFullscreen) {
  20. de.msExitFullscreen();
  21. }
  22. var $full_screen = document.getElementsByClassName('full_screen')[0]
  23. var $not_full_screen = document.getElementsByClassName('not_full_screen')[0]
  24. this.do_notify("退出网页版全屏.");
  25. $not_full_screen.style.display = 'none';
  26. $full_screen.style.display = 'block';
  27. },
  28. _onFullScreen: function () {
  29. var de = document.documentElement;
  30. if (de.requestFullscreen) {
  31. de.requestFullscreen();
  32. } else if (de.mozRequestFullScreen) {
  33. de.mozRequestFullScreen();
  34. } else if (de.webkitRequestFullScreen) {
  35. de.webkitRequestFullScreen();
  36. } else if (de.msRequestFullscreen) {
  37. de.msRequestFullscreen();
  38. }
  39. var $full_screen = document.getElementsByClassName('full_screen')[0]
  40. var $not_full_screen = document.getElementsByClassName('not_full_screen')[0]
  41. $not_full_screen.style.display = 'block';
  42. $full_screen.style.display = 'none';
  43. this.do_notify("进入网页版全屏.");
  44. },
  45. });
  46. FullScreenMenu.prototype.sequence = 0; // force UserMenu to be the right-most item in the systray
  47. SystrayMenu.Items.push(FullScreenMenu);
  48. return FullScreenMenu;
  49. });
posted @   CrossPython  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示