Software: Apache. PHP/5.5.15 uname -a: Windows NT SVR-DMZ 6.1 build 7600 (Windows Server 2008 R2 Enterprise Edition) i586 SYSTEM Safe-mode: OFF (not secure) C:\dmz\phpMyAdmin\js\openlayers\src\openlayers\lib\OpenLayers\Tile\Image\ drwxrwxrwx |
Viewing file: IFrame.js (8.58 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) | /* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for * full list of contributors). Published under the Clear BSD license. * See http://svn.openlayers.org/trunk/openlayers/license.txt for the * full text of the license. */ /** * @requires OpenLayers/Tile/Image.js */ /** * Class: OpenLayers.Tile.Image.IFrame * Instances of OpenLayers.Tile.Image.IFrame are used to manage the image tiles * used by Layer.WMS.Post loaded via HTTP-POST-protocol. Create a new image * tile with the <OpenLayers.Tile.Image.IFrame> constructor. * * Inherits from: * - <OpenLayers.Tile.Image> */ OpenLayers.Tile.Image.IFrame = OpenLayers.Class(OpenLayers.Tile.Image, { /** * Property: layerAlphaHack * {Boolean} Always false for an instance. */ /** * Constructor: OpenLayers.Tile.Image.IFrame * Constructor for a new <OpenLayers.Tile.Image.IFrame> instance. * * Parameters: * layer - {<OpenLayers.Layer>} layer that the tile will go in. * position - {<OpenLayers.Pixel>} * bounds - {<OpenLayers.Bounds>} * size - {<OpenLayers.Size>} */ initialize: function(layer, position, bounds, url, size) { OpenLayers.Tile.Image.prototype.initialize.apply(this, arguments); this.layerAlphaHack = false; }, /** * Method: destroy * nullify references to prevent circular references and memory leaks */ destroy: function() { if(this.imgDiv != null) { // unregister the "load" handler OpenLayers.Event.stopObservingElement(this.imgDiv.firstChild); } OpenLayers.Tile.Image.prototype.destroy.apply(this, arguments); }, /** * Method: clear * Removes the iframe from DOM (avoids back-button problems). */ clear: function() { if(this.imgDiv) { var iFrame = this.imgDiv.firstChild; OpenLayers.Event.stopObservingElement(iFrame); this.imgDiv.removeChild(iFrame); } }, /** * Method: clone * * Parameters: * obj - {<OpenLayers.Tile.Image.IFrame>} The tile to be cloned * * Returns: * {<OpenLayers.Tile.Image.IFrame>} An exact clone of this * <OpenLayers.Tile.Image.IFrame> */ clone: function (obj) { if (obj == null) { obj = new OpenLayers.Tile.Image.IFrame( this.layer, this.position, this.bounds, this.url, this.size); } //pick up properties from superclass obj = OpenLayers.Tile.Image.prototype.clone.apply(this, [obj]); return obj; }, /** * Method: renderTile */ renderTile: function() { if(OpenLayers.Tile.Image.prototype.renderTile.apply(this, arguments)) { // create a html form and add it temporary to the layer div var form = this.createRequestForm(); this.imgDiv.appendChild(form); // submit the form (means fetching the image) form.submit(); this.imgDiv.removeChild(form); } }, /** * Method: initImgDiv * Creates the imgDiv property on the tile. */ initImgDiv: function() { this.imgDiv = this.createImgDiv(); OpenLayers.Util.modifyDOMElement(this.imgDiv, this.id, null, this.layer.getImageSize(), "relative"); this.imgDiv.className = 'olTileImage'; this.frame.appendChild(this.imgDiv); this.layer.div.appendChild(this.frame); if(this.layer.opacity != null) { OpenLayers.Util.modifyDOMElement(this.imgDiv, null, null, null, null, null, null, this.layer.opacity); } // we need this reference to check back the viewRequestID this.imgDiv.map = this.layer.map; }, /** * Method: createImgDiv * Creates a div with iframe.and eventPane * * Returns: * {DOMElement} */ createImgDiv: function() { var eventPane = document.createElement("div"); if(OpenLayers.Util.getBrowserName() == "msie") { // IE cannot handle events on elements without backgroundcolor. So we // use this little hack to make elements transparent eventPane.style.backgroundColor = '#FFFFFF'; eventPane.style.filter = 'chroma(color=#FFFFFF)'; } OpenLayers.Util.modifyDOMElement(eventPane, null, new OpenLayers.Pixel(0,0), this.layer.getImageSize(), "absolute"); var imgDiv = document.createElement("div"); imgDiv.appendChild(eventPane); return imgDiv; }, /** * Method: createIFrame * Create the IFrame which shows the image. * * Returns: * {DOMElement} Iframe */ createIFrame: function() { var id = this.id+'_iFrame'; var iframe; if(OpenLayers.Util.getBrowserName() == "msie") { // InternetExplorer does not set the name attribute of an iFrame // properly via DOM manipulation, so we need to do it on our own with // this hack. iframe = document.createElement('<iframe name="'+id+'">'); // IFrames in InternetExplorer are not transparent, if you set the // backgroundColor transparent. This is a workarround to get // transparent iframes. iframe.style.backgroundColor = '#FFFFFF'; iframe.style.filter = 'chroma(color=#FFFFFF)'; } else { iframe = document.createElement('iframe'); iframe.style.backgroundColor = 'transparent'; // iframe.name needs to be an unique id, otherwise it // could happen that other iframes are overwritten. iframe.name = id; } iframe.id = id; // some special properties to avoid scaling the images and scrollbars // in the iframe iframe.scrolling = 'no'; iframe.marginWidth = '0px'; iframe.marginHeight = '0px'; iframe.frameBorder = '0'; OpenLayers.Util.modifyDOMElement(iframe, id, new OpenLayers.Pixel(0,0), this.layer.getImageSize(), "absolute"); //bind a listener to the onload of the iframe so that we // can register when a tile has finished loading. var onload = function() { this.show(); //normally isLoading should always be true here but there are some // right funky conditions where loading and then reloading a tile // with the same url *really*fast*. this check prevents sending // a 'loadend' if the msg has already been sent // if (this.isLoading) { this.isLoading = false; this.events.triggerEvent("loadend"); } }; OpenLayers.Event.observe(iframe, 'load', OpenLayers.Function.bind(onload, this)); return iframe; }, /** * Method: createRequestForm * Create the html <form> element with width, height, bbox and all * parameters specified in the layer params. * * Returns: * {DOMElement} The form element which sends the HTTP-POST request to the * WMS. */ createRequestForm: function() { // creation of the form element var form = document.createElement('form'); form.method = 'POST'; var cacheId = this.layer.params["_OLSALT"]; cacheId = (cacheId ? cacheId + "_" : "") + this.bounds.toBBOX(); form.action = OpenLayers.Util.urlAppend(this.layer.url, cacheId); // insert the iframe, which has been removed to avoid back-button // problems this.imgDiv.insertBefore(this.createIFrame(), this.imgDiv.firstChild); form.target = this.id+'_iFrame'; // adding all parameters in layer params as hidden fields to the html // form element var imageSize = this.layer.getImageSize(); var params = OpenLayers.Util.extend( { "BBOX": this.encodeBBOX ? this.bounds.toBBOX() : this.bounds.toArray(), "WIDTH": imageSize.w, "HEIGHT": imageSize.h }, this.layer.params); for(var par in params) { var field = document.createElement('input'); field.type = 'hidden'; field.name = par; field.value = params[par]; form.appendChild(field); } return form; }, CLASS_NAME: "OpenLayers.Tile.Image.IFrame" } ); |
:: Command execute :: | |
--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0312 ]-- |