[phpBB Debug] PHP Warning: in file [ROOT]/includes/crs/crs_misc_functions.php on line 37: mime_content_type(): Empty filename or path
[phpBB Debug] PHP Warning: in file [ROOT]/includes/crs/crs_misc_functions.php on line 37: mime_content_type(): Empty filename or path
Zen Cart 源代码 popupwin.js

Zen Cart 源代码 popupwin.js




下载文件

文件名: popupwin.js
文件类型: Javascript文件
文件大小: 3.79 KiB
MD5: 581ba9e3d6fcefeaf370e1575e423236

popupwin.js - 关闭高亮
  1. // (c) dynarch.com 2003-2004
  2. // Distributed under the same terms as HTMLArea itself.
  3.  
  4. function PopupWin(editor, title, handler, initFunction) {
  5.     this.editor = editor;
  6.     this.handler = handler;
  7.     var dlg = window.open("", "__ha_dialog",
  8.                   "toolbar=no,menubar=no,personalbar=no,width=600,height=600,left=20,top=40" +
  9.                   "scrollbars=no,resizable=no");
  10.     this.window = dlg;
  11.     var doc = dlg.document;
  12.     this.doc = doc;
  13.     var self = this;
  14.  
  15.     var base = document.baseURI || document.URL;
  16.     if (base && base.match(/(.*)\/([^\/]+)/)) {
  17.         base = RegExp.$1 + "/";
  18.     }
  19.     if (typeof _editor_url != "undefined" && !/^\//.test(_editor_url)) {
  20.         // _editor_url doesn't start with '/' which means it's relative
  21.         // FIXME: there's a problem here, it could be http:// which
  22.         // doesn't start with slash but it's not relative either.
  23.         base += _editor_url;
  24.     } else
  25.         base = _editor_url;
  26.     if (!/\/$/.test(base)) {
  27.         // base does not end in slash, add it now
  28.         base += '/';
  29.     }
  30.     this.baseURL = base;
  31.  
  32.     doc.open();
  33.     var html = "<html><head><title>" + title + "</title>\n";
  34.     // html += "<base href='" + base + "htmlarea.js' />\n";
  35.     html += "<style type='text/css'>@import url(" + base + "htmlarea.css);</style></head>\n";
  36.     html += "<body class='dialog popupwin' id='--HA-body'></body></html>";
  37.     doc.write(html);
  38.     doc.close();
  39.  
  40.     // sometimes I Hate Mozilla... ;-(
  41.     function init2() {
  42.         var body = doc.body;
  43.         if (!body) {
  44.             setTimeout(init2, 25);
  45.             return false;
  46.         }
  47.         dlg.title = title;
  48.         doc.documentElement.style.padding = "0px";
  49.         doc.documentElement.style.margin = "0px";
  50.         var content = doc.createElement("div");
  51.         content.className = "content";
  52.         self.content = content;
  53.         body.appendChild(content);
  54.         self.element = body;
  55.         initFunction(self);
  56.         dlg.focus();
  57.     };
  58.     init2();
  59. };
  60.  
  61. PopupWin.prototype.callHandler = function() {
  62.     var tags = ["input", "textarea", "select"];
  63.     var params = new Object();
  64.     for (var ti in tags) {
  65.         var tag = tags[ti];
  66.         var els = this.content.getElementsByTagName(tag);
  67.         for (var j = 0; j < els.length; ++j) {
  68.             var el = els[j];
  69.             var val = el.value;
  70.             if (el.tagName.toLowerCase() == "input") {
  71.                 if (el.type == "checkbox") {
  72.                     val = el.checked;
  73.                 }
  74.             }
  75.             params[el.name] = val;
  76.         }
  77.     }
  78.     this.handler(this, params);
  79.     return false;
  80. };
  81.  
  82. PopupWin.prototype.close = function() {
  83.     this.window.close();
  84. };
  85.  
  86. PopupWin.prototype.addButtons = function() {
  87.     var self = this;
  88.     var div = this.doc.createElement("div");
  89.     this.content.appendChild(div);
  90.     div.className = "buttons";
  91.     for (var i = 0; i < arguments.length; ++i) {
  92.         var btn = arguments[i];
  93.         var button = this.doc.createElement("button");
  94.         div.appendChild(button);
  95.         button.innerHTML = HTMLArea.I18N.buttons[btn];
  96.         switch (btn) {
  97.             case "ok":
  98.             button.onclick = function() {
  99.                 self.callHandler();
  100.                 self.close();
  101.                 return false;
  102.             };
  103.             break;
  104.             case "cancel":
  105.             button.onclick = function() {
  106.                 self.close();
  107.                 return false;
  108.             };
  109.             break;
  110.         }
  111.     }
  112. };
  113.  
  114. PopupWin.prototype.showAtElement = function() {
  115.     var self = this;
  116.     // Mozilla needs some time to realize what's goin' on..
  117.     setTimeout(function() {
  118.         var w = self.content.offsetWidth + 4;
  119.         var h = self.content.offsetHeight + 4;
  120.         // size to content -- buggy in all browsers!!!
  121.         // so that we set a larger size for the dialog window and then center
  122.         // the element inside...
  123.  
  124.         // center...
  125.         var el = self.content;
  126.         var s = el.style;
  127.         // s.width = el.offsetWidth + "px";
  128.         // s.height = el.offsetHeight + "px";
  129.         s.position = "absolute";
  130.         s.left = (w - el.offsetWidth) / 2 + "px";
  131.         s.top = (h - el.offsetHeight) / 2 + "px";
  132.         if (HTMLArea.is_gecko) {
  133.             self.window.innerWidth = w;
  134.             self.window.innerHeight = h;
  135.         } else {
  136.             self.window.resizeTo(w + 8, h + 35);
  137.         }
  138.     }, 25);
  139. };
  140.