1 | /*
|
---|
2 | Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
|
---|
3 | For licensing, see LICENSE.html or http://ckeditor.com/license
|
---|
4 | */
|
---|
5 |
|
---|
6 | /**
|
---|
7 | * @fileOverview Defines the {@link CKEDITOR.dom.document} class, which
|
---|
8 | * represents a DOM document.
|
---|
9 | */
|
---|
10 |
|
---|
11 | /**
|
---|
12 | * Represents a DOM window.
|
---|
13 | * @constructor
|
---|
14 | * @augments CKEDITOR.dom.domObject
|
---|
15 | * @param {Object} domWindow A native DOM window.
|
---|
16 | * @example
|
---|
17 | * var document = new CKEDITOR.dom.window( window );
|
---|
18 | */
|
---|
19 | CKEDITOR.dom.window = function( domWindow )
|
---|
20 | {
|
---|
21 | CKEDITOR.dom.domObject.call( this, domWindow );
|
---|
22 | };
|
---|
23 |
|
---|
24 | CKEDITOR.dom.window.prototype = new CKEDITOR.dom.domObject();
|
---|
25 |
|
---|
26 | CKEDITOR.tools.extend( CKEDITOR.dom.window.prototype,
|
---|
27 | /** @lends CKEDITOR.dom.window.prototype */
|
---|
28 | {
|
---|
29 | /**
|
---|
30 | * Moves the selection focus to this window.
|
---|
31 | * @function
|
---|
32 | * @example
|
---|
33 | * var win = new CKEDITOR.dom.window( window );
|
---|
34 | * <b>win.focus()</b>;
|
---|
35 | */
|
---|
36 | focus : function()
|
---|
37 | {
|
---|
38 | // Webkit is sometimes failed to focus iframe, blur it first(#3835).
|
---|
39 | if( CKEDITOR.env.webkit && this.$.parent )
|
---|
40 | this.$.parent.focus();
|
---|
41 | this.$.focus();
|
---|
42 | },
|
---|
43 |
|
---|
44 | /**
|
---|
45 | * Gets the width and height of this window's viewable area.
|
---|
46 | * @function
|
---|
47 | * @returns {Object} An object with the "width" and "height"
|
---|
48 | * properties containing the size.
|
---|
49 | * @example
|
---|
50 | * var win = new CKEDITOR.dom.window( window );
|
---|
51 | * var size = <b>win.getViewPaneSize()</b>;
|
---|
52 | * alert( size.width );
|
---|
53 | * alert( size.height );
|
---|
54 | */
|
---|
55 | getViewPaneSize : function()
|
---|
56 | {
|
---|
57 | var doc = this.$.document,
|
---|
58 | stdMode = doc.compatMode == 'CSS1Compat';
|
---|
59 | return {
|
---|
60 | width : ( stdMode ? doc.documentElement.clientWidth : doc.body.clientWidth ) || 0,
|
---|
61 | height : ( stdMode ? doc.documentElement.clientHeight : doc.body.clientHeight ) || 0
|
---|
62 | };
|
---|
63 | },
|
---|
64 |
|
---|
65 | /**
|
---|
66 | * Gets the current position of the window's scroll.
|
---|
67 | * @function
|
---|
68 | * @returns {Object} An object with the "x" and "y" properties
|
---|
69 | * containing the scroll position.
|
---|
70 | * @example
|
---|
71 | * var win = new CKEDITOR.dom.window( window );
|
---|
72 | * var pos = <b>win.getScrollPosition()</b>;
|
---|
73 | * alert( pos.x );
|
---|
74 | * alert( pos.y );
|
---|
75 | */
|
---|
76 | getScrollPosition : function()
|
---|
77 | {
|
---|
78 | var $ = this.$;
|
---|
79 |
|
---|
80 | if ( 'pageXOffset' in $ )
|
---|
81 | {
|
---|
82 | return {
|
---|
83 | x : $.pageXOffset || 0,
|
---|
84 | y : $.pageYOffset || 0
|
---|
85 | };
|
---|
86 | }
|
---|
87 | else
|
---|
88 | {
|
---|
89 | var doc = $.document;
|
---|
90 | return {
|
---|
91 | x : doc.documentElement.scrollLeft || doc.body.scrollLeft || 0,
|
---|
92 | y : doc.documentElement.scrollTop || doc.body.scrollTop || 0
|
---|
93 | };
|
---|
94 | }
|
---|
95 | }
|
---|
96 | });
|
---|