1
0

main.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. /**
  2. * User: Baoxu
  3. * Date: 16/7/28
  4. * Time: 00:08
  5. * Desc: 辅助二维码的实时生成与更新
  6. */
  7. // 公用的对象变量
  8. var qrcode_div; // 二维码显示区
  9. var text_input; // 内容输入框
  10. var qrcode; // 二维码lib的实例
  11. var newtab_btn; // 新页面打开的按钮
  12. // 生成二维码的函数
  13. function makeCode() {
  14. // 判断输入框是否为空
  15. if (!text_input.val()) {
  16. text_input.focus();
  17. return;
  18. }
  19. // 生成二维码
  20. qrcode.makeCode(text_input.val());
  21. }
  22. // 获取当前浏览器当前TAB的url
  23. function getUrl() {
  24. chrome.tabs.getSelected(function (tabs) {
  25. text_input.val(tabs.url);
  26. makeCode();
  27. });
  28. }
  29. // 新创建或者聚焦在独立的二维码页面
  30. function focusOrCreateTab(url) {
  31. chrome.windows.getAll({"populate": true}, function (windows) {
  32. var existing_tab = null;
  33. for (var i in windows) {
  34. var tabs = windows[i].tabs;
  35. for (var j in tabs) {
  36. var tab = tabs[j];
  37. if (tab.url == url) {
  38. existing_tab = tab;
  39. break;
  40. }
  41. }
  42. }
  43. if (existing_tab) {
  44. chrome.tabs.update(existing_tab.id, {"selected": true});
  45. } else {
  46. chrome.tabs.create({"url": url, "selected": true});
  47. }
  48. });
  49. }
  50. // 点击全屏按钮时的操作
  51. function newTabBtnClick() {
  52. event.preventDefault();
  53. var manager_url = chrome.extension.getURL("template/main.html");
  54. focusOrCreateTab(manager_url);
  55. }
  56. // 页面加载好之后,开始执行
  57. $(document).ready(function () {
  58. // 对公用的DOM对象赋值
  59. qrcode_div = $("#qrcodeDiv"); // 二维码显示区
  60. text_input = $("#textInput"); // 内容输入框
  61. newtab_btn = $("#newTabBtn"); // 新页面打开按钮
  62. // 二维码对象
  63. qrcode = new QRCode(document.getElementById("qrcodeDiv"), {
  64. width: 400,
  65. height: 400
  66. });
  67. // 获取当前页面链接并生成二维码
  68. getUrl();
  69. // 聚焦在输入框
  70. text_input.focus();
  71. // 输入框文本有变动时,立即更新二维码
  72. text_input.on("input", function () {
  73. makeCode();
  74. }).on("keydown", function (e) {
  75. if (e.keyCode == 13) {
  76. makeCode();
  77. }
  78. });
  79. // 为新标签打开按钮绑定事件
  80. newtab_btn.click(newTabBtnClick);
  81. });