plugin.html 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, viewport-fit=cover">
  6. <title>Test: Plugin</title>
  7. <link href="../example/lib/weui.min.css" rel="stylesheet"/>
  8. <link href="../example/lib/demo.css" rel="stylesheet"/>
  9. <script src="../example/lib/zepto.min.js"></script>
  10. <script src="../example/lib/zepto.touch.min.js"></script>
  11. <script src="../dist/vconsole.min.js"></script>
  12. </head>
  13. <body ontouchstart>
  14. <div class="page">
  15. <a onclick="newTab()" href="javascript:;" class="weui_btn weui_btn_default">newTab</a>
  16. <a onclick="newTabWithTool()" href="javascript:;" class="weui_btn weui_btn_default">newTabWithTool</a>
  17. <a onclick="newGlobalToolButton()" href="javascript:;" class="weui_btn weui_btn_default">newGlobalToolButton</a>
  18. <a onclick="newTabUseJQuery()" href="javascript:;" class="weui_btn weui_btn_default">newTabUseJQuery</a>
  19. <a onclick="newTabUseDOM()" href="javascript:;" class="weui_btn weui_btn_default">newTabUseDOM</a>
  20. </div>
  21. </body>
  22. </html>
  23. <script>
  24. function newTab() {
  25. console.info('newTab() Start');
  26. var tab = new vConsole.VConsolePlugin('tab1', 'Tab1');
  27. tab
  28. .on('init', function() { console.log(this.id, 'init'); })
  29. .on('renderTab', function(cb) {
  30. console.log(this.id, 'renderTab');
  31. cb('<div>I am ' + this.id+'</div>');
  32. })
  33. .on('ready', function() { console.log(this.id, 'ready'); })
  34. .on('show', function() { console.log(this.id, 'show'); })
  35. .on('hide', function() { console.log(this.id, 'hide'); })
  36. .on('showConsole', function() { console.log(this.id, 'showConsole'); })
  37. .on('hideConsole', function() { console.log(this.id, 'hideConsole'); });
  38. vConsole.addPlugin(tab);
  39. console.info('newTab() End');
  40. }
  41. function newTabWithTool() {
  42. console.info('newTabWithTool() Start');
  43. var tab = new vConsole.VConsolePlugin('tab2', 'Tab2');
  44. tab.on('renderTab', function(cb) {
  45. console.log(this.id, 'renderTab');
  46. cb('<div>I am ' + this.id+'</div>');
  47. })
  48. .on('addTool', function(cb) {
  49. console.log(this.id, 'addTool');
  50. cb([
  51. {
  52. name: 'Alert',
  53. global: false,
  54. onClick: function(e) {
  55. alert('I am a tool button!');
  56. }
  57. }
  58. ]);
  59. });
  60. vConsole.addPlugin(tab);
  61. console.info('newTabWithTool() End');
  62. }
  63. function newGlobalToolButton() {
  64. console.info('newGlobalToolButton() Start');
  65. var plugin = new vConsole.VConsolePlugin('plugin3', 'Plugin3');
  66. plugin.on('addTool', function(cb) {
  67. console.log(this.id, 'addTool');
  68. cb([
  69. {
  70. name: 'Global',
  71. global: true,
  72. onClick: function(e) {
  73. alert('I am a global tool button!');
  74. }
  75. }
  76. ]);
  77. });
  78. vConsole.addPlugin(plugin);
  79. console.info('newGlobalToolButton() End');
  80. }
  81. function newTabUseJQuery() {
  82. console.info('newTabUseJQuery() Start');
  83. var tab = new vConsole.VConsolePlugin('tab4', 'Tab4');
  84. var $html = $('<div><a href="javascript:;">Alert</a></div>');
  85. $html.find('a').click(function() {
  86. alert('OK');
  87. });
  88. tab.on('renderTab', function(cb) {
  89. cb($html);
  90. });
  91. vConsole.addPlugin(tab);
  92. console.info('newTabUseJQuery() End');
  93. }
  94. function newTabUseDOM() {
  95. console.info('newTabUseDOM() Start');
  96. var tab = new vConsole.VConsolePlugin('tab5', 'Tab5');
  97. var $elm = document.createElement('DIV');
  98. $elm.innerHTML = '<p>It works</p>';
  99. tab.on('renderTab', function(cb) {
  100. cb($elm);
  101. });
  102. vConsole.addPlugin(tab);
  103. console.info('newTabUseDOM() End');
  104. }
  105. </script>