diff options
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/window/window.js')
-rw-r--r-- | contexts/data/lib/closure-library/closure/goog/window/window.js | 233 |
1 files changed, 0 insertions, 233 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/window/window.js b/contexts/data/lib/closure-library/closure/goog/window/window.js deleted file mode 100644 index bd5f2cc..0000000 --- a/contexts/data/lib/closure-library/closure/goog/window/window.js +++ /dev/null @@ -1,233 +0,0 @@ -// Copyright 2006 The Closure Library Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS-IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * @fileoverview Utilities for window manipulation. - */ - - -goog.provide('goog.window'); - -goog.require('goog.string'); -goog.require('goog.userAgent'); - - -/** - * Default height for popup windows - * @type {number} - */ -goog.window.DEFAULT_POPUP_HEIGHT = 500; - - -/** - * Default width for popup windows - * @type {number} - */ -goog.window.DEFAULT_POPUP_WIDTH = 690; - - -/** - * Default target for popup windows - * @type {string} - */ -goog.window.DEFAULT_POPUP_TARGET = 'google_popup'; - - -/** - * Opens a new window. - * - * @param {string|Object} linkRef A string or an object that supports toString, - * for example goog.Uri. If this is an object with a 'href' attribute, such - * as HTMLAnchorElement, it will be used instead. - * - * @param {Object=} opt_options supports the following options: - * 'target': (string) target (window name). If null, linkRef.target will - * be used. - * 'width': (number) window width. - * 'height': (number) window height. - * 'top': (number) distance from top of screen - * 'left': (number) distance from left of screen - * 'toolbar': (boolean) show toolbar - * 'scrollbars': (boolean) show scrollbars - * 'location': (boolean) show location - * 'statusbar': (boolean) show statusbar - * 'menubar': (boolean) show menubar - * 'resizable': (boolean) resizable - * 'noreferrer': (boolean) whether to attempt to remove the referrer header - * from the request headers. Does this by opening a blank window that - * then redirects to the target url, so users may see some flickering. - * - * @param {Window=} opt_parentWin Parent window that should be used to open the - * new window. - * - * @return {Window} Returns the window object that was opened. This returns - * null if a popup blocker prevented the window from being - * opened. - */ -goog.window.open = function(linkRef, opt_options, opt_parentWin) { - if (!opt_options) { - opt_options = {}; - } - var parentWin = opt_parentWin || window; - - // HTMLAnchorElement has a toString() method with the same behavior as - // goog.Uri in all browsers except for Safari, which returns - // '[object HTMLAnchorElement]'. We check for the href first, then - // assume that it's a goog.Uri or String otherwise. - var href = typeof linkRef.href != 'undefined' ? linkRef.href : - String(linkRef); - var target = opt_options.target || linkRef.target; - - var sb = []; - for (var option in opt_options) { - switch (option) { - case 'width': - case 'height': - case 'top': - case 'left': - sb.push(option + '=' + opt_options[option]); - break; - case 'target': - case 'noreferrer': - break; - default: - sb.push(option + '=' + (opt_options[option] ? 1 : 0)); - } - } - var optionString = sb.join(','); - - var newWin; - if (opt_options['noreferrer']) { - // Use a meta-refresh to stop the referrer from being included in the - // request headers. - newWin = parentWin.open('', target, optionString); - if (newWin) { - if (goog.userAgent.IE) { - // IE has problems parsing the content attribute if the url contains - // a semicolon. We can fix this by adding quotes around the url, but - // then we can't parse quotes in the URL correctly. We take a - // best-effort approach. - // - // If the URL has semicolons, wrap it in single quotes to protect - // the semicolons. - // If the URL has semicolons and single quotes, url-encode the single - // quotes as well. - // - // This is imperfect. Notice that both ' and ; are reserved characters - // in URIs, so this could do the wrong thing, but at least it will - // do the wrong thing in only rare cases. - // ugh. - if (href.indexOf(';') != -1) { - href = "'" + href.replace(/'/g, '%27') + "'"; - } - } - newWin.opener = null; - if (goog.userAgent.WEBKIT) { - // In some versions of Chrome (tested on 15), using meta refresh won't - // put the new page in a new process, but setting location.href does. If - // Chrome fixes that bug, we can get rid of this conditional. - // http://code.google.com/p/chromium/issues/detail?id=93517 - newWin.location.href = href; - } else { - href = goog.string.htmlEscape(href); - newWin.document.write('<META HTTP-EQUIV="refresh" content="0; url=' + - href + '">'); - newWin.document.close(); - } - } - } else { - newWin = parentWin.open(href, target, optionString); - } - // newWin is null if a popup blocker prevented the window open. - return newWin; -}; - - -/** - * Opens a new window without any real content in it. - * - * This can be used to get around popup blockers if you need to open a window - * in response to a user event, but need to do asynchronous work to determine - * the URL to open, and then set the URL later. - * - * Example usage: - * - * var newWin = goog.window.openBlank('Loading...'); - * setTimeout( - * function() { - * newWin.location.href = 'http://www.google.com'; - * }, 100); - * - * @param {string=} opt_message String to show in the new window. This string - * will be HTML-escaped to avoid XSS issues. - * @param {Object=} opt_options Options to open window with. - * {@see goog.window.open for exact option semantics}. - * @param {Window=} opt_parentWin Parent window that should be used to open the - * new window. - * @return {Window} Returns the window object that was opened. This returns - * null if a popup blocker prevented the window from being - * opened. - */ -goog.window.openBlank = function(opt_message, opt_options, opt_parentWin) { - - // Open up a window with the loading message and nothing else. - // This will be interpreted as HTML content type with a missing doctype - // and html/body tags, but is otherwise acceptable. - var loadingMessage = opt_message ? goog.string.htmlEscape(opt_message) : ''; - return /** @type {Window} */ (goog.window.open( - 'javascript:"' + encodeURI(loadingMessage) + '"', - opt_options, opt_parentWin)); -}; - - -/** - * Raise a help popup window, defaulting to "Google standard" size and name. - * - * (If your project is using GXPs, consider using {@link PopUpLink.gxp}.) - * - * @param {string|Object} linkRef if this is a string, it will be used as the - * URL of the popped window; otherwise it's assumed to be an HTMLAnchorElement - * (or some other object with "target" and "href" properties). - * - * @param {Object=} opt_options Options to open window with. - * {@see goog.window.open for exact option semantics} - * Additional wrinkles to the options: - * - if 'target' field is null, linkRef.target will be used. If *that's* - * null, the default is "google_popup". - * - if 'width' field is not specified, the default is 690. - * - if 'height' field is not specified, the default is 500. - * - * @return {boolean} true if the window was not popped up, false if it was. - */ -goog.window.popup = function(linkRef, opt_options) { - if (!opt_options) { - opt_options = {}; - } - - // set default properties - opt_options['target'] = opt_options['target'] || - linkRef['target'] || goog.window.DEFAULT_POPUP_TARGET; - opt_options['width'] = opt_options['width'] || - goog.window.DEFAULT_POPUP_WIDTH; - opt_options['height'] = opt_options['height'] || - goog.window.DEFAULT_POPUP_HEIGHT; - - var newWin = goog.window.open(linkRef, opt_options); - if (!newWin) { - return true; - } - newWin.focus(); - - return false; -}; |