home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 February / CHIP_CD_2005-02.iso / bonus / firefox / files / docmark.js < prev    next >
Text File  |  2004-12-21  |  2KB  |  73 lines

  1. // ╬ß·σΩ≥ Σδ  ⌡≡αφσφΦ  ταΩδαΣεΩ Γ±σ⌡ ε≥Ω≡√≥√⌡ ΣεΩ≤∞σφ≥εΓ
  2. var allmarks = {};
  3.  
  4. // ╧≡ε÷σΣ≤≡α ΣεßαΓδσφΦ  ταΩδαΣΩΦ
  5. function docmark_add()
  6. {
  7.     // URL ΣεΩ≤∞σφ≥α ß≤Σσ∞ Φ±∩εδⁿτεΓα≥ⁿ Γ Ωα≈σ±≥Γσ ≤φΦΩαδⁿφεπε
  8.     // ΦΣσφ≥Φ⌠ΦΩα≥ε≡α ±∩Φ±Ωα ταΩδαΣεΩ
  9.     var id = window.content.document.location.href;
  10.  
  11.     if (typeof(allmarks[id]) == "undefined") {
  12.         allmarks[id] = [];
  13.     }
  14.  
  15.     var num = allmarks[id].length;
  16.     var label = prompt(document.getElementById("docmark-string-bundle").getFormattedString("docmarkMarkTitle", [num + 1]), "");
  17.     if (label != null) {
  18.         // pageXOffset, pageYOffset -- ≥σΩ≤∙σσ ∩εδεµσφΦσ ∩≡εΩ≡≤≥ΩΦ
  19.         allmarks[id][num] = {offsetX:window.content.pageXOffset, offsetY:window.content.pageYOffset, label:label};
  20.     }
  21. }
  22.  
  23. // ╧≡ε÷σΣ≤≡α πσφσ≡α÷ΦΦ ±∩Φ±Ωα ταΩδαΣεΩ
  24. function docmark_generate_menu_marks(menu)
  25. {
  26.     // ╙ΣαδΦ∞ Γ±σ ±≥α≡√σ ταΩδαΣΩΦ
  27.     docmark_remove_menu_marks(menu);
  28.  
  29.     var marks = allmarks[window.content.document.location.href];
  30.     if (typeof(marks) == "undefined") return;
  31.  
  32.     var menuItem;
  33.  
  34.     if (marks.length != 0) {
  35.         // ─εßαΓΦ∞ ≡ατΣσδΦ≥σδⁿφ≤■ δΦφΦ■
  36.         menuItem = document.createElement("menuseparator");
  37.         docmark_insert_menu_item(menu, menuItem);
  38.     } else return;
  39.  
  40.     for (var i = 0; i < marks.length; ++i) {
  41.         var num = i + 1;
  42.         var mark = marks[i];
  43.         menuItem = document.createElement("menuitem");
  44.         menuItem.setAttribute("label", num + '. ' + mark.label);
  45.         menuItem.setAttribute("oncommand", "window.content.scrollTo(" + mark.offsetX + "," + mark.offsetY + ")");
  46.         if (num <= 10) {
  47.             menuItem.setAttribute("accesskey", num % 10);
  48.         }
  49.         docmark_insert_menu_item(menu, menuItem);
  50.     }
  51. }
  52.  
  53. // ─εßαΓδσφΦσ ταΩδαΣΩΦ Γ ∞σφ■
  54. function docmark_insert_menu_item(menu, item)
  55. {
  56.     item.setAttribute("class", "docmark-generated-menu");
  57.     menu.insertBefore(item, document.getElementById("docmark-separator-end"));
  58. }
  59.  
  60. // ╙ΣαδσφΦσ ±πσφσ≡Φ≡εΓαφ√⌡ ταΩδαΣεΩ
  61. function docmark_remove_menu_marks(menu)
  62. {
  63.     var menuItems = menu.getElementsByAttribute("class", "docmark-generated-menu");
  64.     for (var i = 0; i < menuItems.length; ++i) {
  65.         menu.removeChild(menuItems[i]);
  66.     }
  67. }
  68. // ─Φαδεπ "About"
  69. function docmark_about()
  70. {
  71.     window.openDialog("chrome://docmark/content/about.xul", "docmark-about-dialog", "centerscreen,chrome,modal");
  72. }
  73.