97 lines
2.5 KiB
JavaScript
97 lines
2.5 KiB
JavaScript
/*
|
|
Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
|
|
For licensing, see LICENSE.html or http://ckeditor.com/license
|
|
*/
|
|
|
|
/**
|
|
* @fileOverview Defines the {@link CKEDITOR.dom.document} class, which
|
|
* represents a DOM document.
|
|
*/
|
|
|
|
/**
|
|
* Represents a DOM window.
|
|
* @constructor
|
|
* @augments CKEDITOR.dom.domObject
|
|
* @param {Object} domWindow A native DOM window.
|
|
* @example
|
|
* var document = new CKEDITOR.dom.window( window );
|
|
*/
|
|
CKEDITOR.dom.window = function( domWindow )
|
|
{
|
|
CKEDITOR.dom.domObject.call( this, domWindow );
|
|
};
|
|
|
|
CKEDITOR.dom.window.prototype = new CKEDITOR.dom.domObject();
|
|
|
|
CKEDITOR.tools.extend( CKEDITOR.dom.window.prototype,
|
|
/** @lends CKEDITOR.dom.window.prototype */
|
|
{
|
|
/**
|
|
* Moves the selection focus to this window.
|
|
* @function
|
|
* @example
|
|
* var win = new CKEDITOR.dom.window( window );
|
|
* <b>win.focus()</b>;
|
|
*/
|
|
focus : function()
|
|
{
|
|
// Webkit is sometimes failed to focus iframe, blur it first(#3835).
|
|
if ( CKEDITOR.env.webkit && this.$.parent )
|
|
this.$.parent.focus();
|
|
this.$.focus();
|
|
},
|
|
|
|
/**
|
|
* Gets the width and height of this window's viewable area.
|
|
* @function
|
|
* @returns {Object} An object with the "width" and "height"
|
|
* properties containing the size.
|
|
* @example
|
|
* var win = new CKEDITOR.dom.window( window );
|
|
* var size = <b>win.getViewPaneSize()</b>;
|
|
* alert( size.width );
|
|
* alert( size.height );
|
|
*/
|
|
getViewPaneSize : function()
|
|
{
|
|
var doc = this.$.document,
|
|
stdMode = doc.compatMode == 'CSS1Compat';
|
|
return {
|
|
width : ( stdMode ? doc.documentElement.clientWidth : doc.body.clientWidth ) || 0,
|
|
height : ( stdMode ? doc.documentElement.clientHeight : doc.body.clientHeight ) || 0
|
|
};
|
|
},
|
|
|
|
/**
|
|
* Gets the current position of the window's scroll.
|
|
* @function
|
|
* @returns {Object} An object with the "x" and "y" properties
|
|
* containing the scroll position.
|
|
* @example
|
|
* var win = new CKEDITOR.dom.window( window );
|
|
* var pos = <b>win.getScrollPosition()</b>;
|
|
* alert( pos.x );
|
|
* alert( pos.y );
|
|
*/
|
|
getScrollPosition : function()
|
|
{
|
|
var $ = this.$;
|
|
|
|
if ( 'pageXOffset' in $ )
|
|
{
|
|
return {
|
|
x : $.pageXOffset || 0,
|
|
y : $.pageYOffset || 0
|
|
};
|
|
}
|
|
else
|
|
{
|
|
var doc = $.document;
|
|
return {
|
|
x : doc.documentElement.scrollLeft || doc.body.scrollLeft || 0,
|
|
y : doc.documentElement.scrollTop || doc.body.scrollTop || 0
|
|
};
|
|
}
|
|
}
|
|
});
|