Project

General

Profile

Statistics
| Revision:

root / trunk / web / dojo / dojox / io / windowName.js @ 9

History | View | Annotate | Download (3.27 KB)

1
/*
2
        Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
3
        Available via Academic Free License >= 2.1 OR the modified BSD license.
4
        see: http://dojotoolkit.org/license for details
5
*/
6

    
7

    
8
if(!dojo._hasResource["dojox.io.windowName"]){
9
dojo._hasResource["dojox.io.windowName"]=true;
10
dojo.provide("dojox.io.windowName");
11
dojox.io.windowName={send:function(_1,_2){
12
_2.url+=(_2.url.match(/\?/)?"&":"?")+"windowname="+(_2.authElement?"auth":true);
13
var _3=_2.authElement;
14
var _4=function(_5){
15
try{
16
var _6=_7.ioArgs.frame.contentWindow.document;
17
_6.write(" ");
18
_6.close();
19
}
20
catch(e){
21
}
22
(_3||dojo.body()).removeChild(_7.ioArgs.outerFrame);
23
return _5;
24
};
25
var _7=dojo._ioSetArgs(_2,_4,_4,_4);
26
if(_2.timeout){
27
setTimeout(function(){
28
if(_7.fired==-1){
29
_7.callback(new Error("Timeout"));
30
}
31
},_2.timeout);
32
}
33
var _8=dojox.io.windowName;
34
if(dojo.body()){
35
_8._send(_7,_1,_3,_2.onAuthLoad);
36
}else{
37
dojo.addOnLoad(function(){
38
_8._send(_7,_1,_3,_2.onAuthLoad);
39
});
40
}
41
return _7;
42
},_send:function(_9,_a,_b,_c){
43
var _d=_9.ioArgs;
44
var _e=dojox.io.windowName._frameNum++;
45
var _f=(dojo.config.dojoBlankHtmlUrl||dojo.config.dojoCallbackUrl||dojo.moduleUrl("dojo","resources/blank.html"))+"#"+_e;
46
var _10=new dojo._Url(window.location,_f);
47
var doc=dojo.doc;
48
var _11=_b||dojo.body();
49
function _12(_13){
50
_13.style.width="100%";
51
_13.style.height="100%";
52
_13.style.border="0px";
53
};
54
if(dojo.isMoz&&![].reduce){
55
var _14=doc.createElement("iframe");
56
_12(_14);
57
if(!_b){
58
_14.style.display="none";
59
}
60
_11.appendChild(_14);
61
var _15=_14.contentWindow;
62
doc=_15.document;
63
doc.write("<html><body margin='0px'><iframe style='width:100%;height:100%;border:0px' name='protectedFrame'></iframe></body></html>");
64
doc.close();
65
var _16=_15[0];
66
_15.__defineGetter__(0,function(){
67
});
68
_15.__defineGetter__("protectedFrame",function(){
69
});
70
doc=_16.document;
71
doc.write("<html><body margin='0px'></body></html>");
72
doc.close();
73
_11=doc.body;
74
}
75
var _17=_d.frame=_17=doc.createElement(dojo.isIE?"<iframe name=\""+_10+"\" onload=\"dojox.io.windowName["+_e+"]()\">":"iframe");
76
_12(_17);
77
_d.outerFrame=_14=_14||_17;
78
if(!_b){
79
_14.style.display="none";
80
}
81
var _18=0;
82
function _19(){
83
var _1a=_17.contentWindow.name;
84
if(typeof _1a=="string"){
85
if(_1a!=_10){
86
_18=2;
87
_9.ioArgs.hash=_17.contentWindow.location.hash;
88
_9.callback(_1a);
89
}
90
}
91
};
92
dojox.io.windowName[_e]=_17.onload=function(){
93
try{
94
if(!dojo.isMoz&&_17.contentWindow.location=="about:blank"){
95
return;
96
}
97
}
98
catch(e){
99
}
100
if(!_18){
101
_18=1;
102
if(_b){
103
if(_c){
104
_c();
105
}
106
}else{
107
_17.contentWindow.location=_f;
108
}
109
}
110
try{
111
if(_18<2){
112
_19();
113
}
114
}
115
catch(e){
116
}
117
};
118
_17.name=_10;
119
if(_a.match(/GET/i)){
120
dojo._ioAddQueryToUrl(_d);
121
_17.src=_d.url;
122
_11.appendChild(_17);
123
if(_17.contentWindow){
124
_17.contentWindow.location.replace(_d.url);
125
}
126
}else{
127
if(_a.match(/POST/i)){
128
_11.appendChild(_17);
129
var _1b=dojo.doc.createElement("form");
130
dojo.body().appendChild(_1b);
131
var _1c=dojo.queryToObject(_d.query);
132
for(var i in _1c){
133
var _1d=_1c[i];
134
_1d=_1d instanceof Array?_1d:[_1d];
135
for(var j=0;j<_1d.length;j++){
136
var _1e=doc.createElement("input");
137
_1e.type="hidden";
138
_1e.name=i;
139
_1e.value=_1d[j];
140
_1b.appendChild(_1e);
141
}
142
}
143
_1b.method="POST";
144
_1b.action=_d.url;
145
_1b.target=_10;
146
_1b.submit();
147
_1b.parentNode.removeChild(_1b);
148
}else{
149
throw new Error("Method "+_a+" not supported with the windowName transport");
150
}
151
}
152
if(_17.contentWindow){
153
_17.contentWindow.name=_10;
154
}
155
},_frameNum:0};
156
}