jspec 2.11.13 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.md +714 -0
- data/Manifest +51 -36
- data/README.md +968 -0
- data/Rakefile +4 -53
- data/bin/jspec +93 -224
- data/jspec.gemspec +5 -5
- data/lib/images/sprites.png +0 -0
- data/lib/jspec.css +2 -2
- data/lib/jspec.growl.js +115 -0
- data/lib/jspec.jquery.js +1 -1
- data/lib/jspec.js +98 -101
- data/lib/jspec.shell.js +5 -2
- data/lib/jspec.timers.js +1 -1
- data/lib/jspec.xhr.js +12 -2
- data/spec/commands/example_command.rb +19 -0
- data/spec/dom.html +33 -0
- data/spec/node.js +32 -0
- data/spec/rhino.js +24 -0
- data/spec/ruby/bin/init_spec.rb +101 -0
- data/spec/ruby/bin/install_spec.rb +141 -0
- data/spec/ruby/bin/run_spec.rb +0 -0
- data/spec/ruby/bin/shell_spec.rb +13 -0
- data/spec/ruby/bin/spec_helper.rb +25 -0
- data/spec/ruby/bin/update_spec.rb +72 -0
- data/spec/server.html +29 -0
- data/spec/server.rb +1 -1
- data/spec/{env.js → support/env.js} +554 -664
- data/spec/support/jquery.js +4376 -0
- data/spec/{helpers.js → unit/helpers.js} +2 -0
- data/spec/{spec.fixtures.js → unit/spec.fixtures.js} +0 -1
- data/spec/{spec.grammar-less.js → unit/spec.grammar-less.js} +0 -0
- data/spec/{spec.grammar.js → unit/spec.grammar.js} +1 -11
- data/spec/{spec.jquery.js → unit/spec.jquery.js} +0 -17
- data/spec/{spec.jquery.xhr.js → unit/spec.jquery.xhr.js} +13 -2
- data/spec/unit/spec.js +187 -0
- data/spec/{spec.matchers.js → unit/spec.matchers.js} +141 -66
- data/spec/{spec.modules.js → unit/spec.modules.js} +0 -0
- data/spec/{spec.shared-behaviors.js → unit/spec.shared-behaviors.js} +0 -0
- data/spec/{spec.utils.js → unit/spec.utils.js} +123 -22
- data/spec/{spec.xhr.js → unit/spec.xhr.js} +11 -10
- data/{server → src}/browsers.rb +23 -0
- data/{server → src}/helpers.rb +2 -17
- data/src/installables.rb +229 -0
- data/src/project.rb +340 -0
- data/{server → src}/routes.rb +1 -1
- data/{server → src}/server.rb +0 -0
- data/support/js.jar +0 -0
- data/templates/default/History.md +5 -0
- data/templates/default/{README.rdoc → Readme.md} +3 -3
- data/templates/default/lib/{yourlib.core.js → yourlib.js} +0 -0
- data/templates/default/spec/commands/example_command.rb +19 -0
- data/templates/default/spec/{spec.dom.html → dom.html} +5 -3
- data/templates/default/spec/rhino.js +10 -0
- data/templates/default/spec/server.html +18 -0
- data/templates/default/spec/unit/spec.helper.js +0 -0
- data/templates/default/spec/{spec.core.js → unit/spec.js} +0 -0
- data/templates/rails/commands/example_commands.rb +19 -0
- data/templates/rails/{spec.dom.html → dom.html} +4 -2
- data/templates/rails/rhino.js +10 -0
- data/templates/rails/server.html +18 -0
- data/templates/rails/unit/spec.helper.js +0 -0
- data/templates/rails/{spec.application.js → unit/spec.js} +0 -0
- metadata +56 -41
- data/History.rdoc +0 -590
- data/README.rdoc +0 -842
- data/spec/async +0 -1
- data/spec/jquery.js +0 -19
- data/spec/spec.dom.html +0 -34
- data/spec/spec.js +0 -166
- data/spec/spec.node.js +0 -46
- data/spec/spec.rhino.js +0 -23
- data/spec/spec.server.html +0 -29
- data/templates/default/History.rdoc +0 -4
- data/templates/default/spec/spec.rhino.js +0 -8
- data/templates/default/spec/spec.server.html +0 -16
- data/templates/rails/spec.rhino.js +0 -8
- data/templates/rails/spec.server.html +0 -16
@@ -0,0 +1,25 @@
|
|
1
|
+
|
2
|
+
require 'fileutils'
|
3
|
+
|
4
|
+
load File.dirname(__FILE__) + '/../../../bin/jspec'
|
5
|
+
|
6
|
+
def jspec name, *args
|
7
|
+
capture do
|
8
|
+
command(name).run *args
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def capture &block
|
13
|
+
IO.popen('-') do |io|
|
14
|
+
io ? io.read : yield
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def shell *args
|
19
|
+
IO.popen(JSPEC_ROOT + '/bin/jspec shell', 'r+') do |io|
|
20
|
+
args.each do |arg|
|
21
|
+
io.puts arg
|
22
|
+
end
|
23
|
+
io.read
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
|
2
|
+
include FileUtils
|
3
|
+
|
4
|
+
describe "jspec" do
|
5
|
+
describe "update" do
|
6
|
+
before :each do
|
7
|
+
@dest = File.dirname(__FILE__) + '/test'
|
8
|
+
mkdir @dest
|
9
|
+
end
|
10
|
+
|
11
|
+
after :each do
|
12
|
+
rm_rf @dest
|
13
|
+
end
|
14
|
+
|
15
|
+
def mock_version_in path, &block
|
16
|
+
File.open(path, 'w+') do |file|
|
17
|
+
file.write 'src="/Some/path/jspec-1.1.0"'
|
18
|
+
end
|
19
|
+
yield path if block
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should update absolute paths matching jspec-n.n.n" do
|
23
|
+
jspec(:init, @dest)
|
24
|
+
mock_version_in "#{@dest}/spec/dom.html" do |path|
|
25
|
+
Dir.chdir(@dest) { jspec(:update) }
|
26
|
+
File.read(path).should include("jspec-#{program(:version)}")
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should update absolute paths matching jspec-n.n.n for a rails project" do
|
31
|
+
mkdir @dest + '/vendor'
|
32
|
+
jspec(:init, @dest)
|
33
|
+
mock_version_in "#{@dest}/jspec/dom.html" do |path|
|
34
|
+
Dir.chdir(@dest) { jspec(:update) }
|
35
|
+
File.read(path).should include("jspec-#{program(:version)}")
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should update absolute paths matching jspec-n.n.n when a destination is passed" do
|
40
|
+
jspec(:init, @dest)
|
41
|
+
mock_version_in "#{@dest}/spec/dom.html" do |path|
|
42
|
+
jspec(:update, @dest)
|
43
|
+
File.read(path).should include("jspec-#{program(:version)}")
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should update absolute paths matching jspec-n.n.n for a rails project when a destination in passed" do
|
48
|
+
mkdir @dest + '/vendor'
|
49
|
+
jspec(:init, @dest)
|
50
|
+
mock_version_in "#{@dest}/jspec/dom.html" do |path|
|
51
|
+
jspec(:update, @dest)
|
52
|
+
File.read(path).should include("jspec-#{program(:version)}")
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should update projects initialized with --freeze" do
|
57
|
+
jspec(:init, @dest, '--freeze')
|
58
|
+
rm "#{@dest}/spec/lib/jspec.js"
|
59
|
+
jspec(:update, @dest)
|
60
|
+
File.exists?("#{@dest}/spec/lib/jspec.js").should be_true
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should update rails projects initialized with --freeze" do
|
64
|
+
mkdir @dest + '/vendor'
|
65
|
+
jspec(:init, @dest, '--freeze')
|
66
|
+
rm "#{@dest}/jspec/lib/jspec.js"
|
67
|
+
jspec(:update, @dest)
|
68
|
+
File.exists?("#{@dest}/jspec/lib/jspec.js").should be_true
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
end
|
data/spec/server.html
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
<html>
|
2
|
+
<head>
|
3
|
+
<script src="/spec/support/jquery.js"></script>
|
4
|
+
<script src="/jspec/jspec.js"></script>
|
5
|
+
<script src="/jspec/jspec.jquery.js"></script>
|
6
|
+
<script src="/jspec/jspec.xhr.js"></script>
|
7
|
+
<script src="/spec/helpers.js"></script>
|
8
|
+
<script src="/spec/unit/spec.grammar-less.js"></script>
|
9
|
+
<script>
|
10
|
+
function runSuites() {
|
11
|
+
JSpec
|
12
|
+
.exec('/spec/unit/spec.grammar.js')
|
13
|
+
.exec('/spec/unit/spec.js')
|
14
|
+
.exec('/spec/unit/spec.matchers.js')
|
15
|
+
.exec('/spec/unit/spec.utils.js')
|
16
|
+
.exec('/spec/unit/spec.fixtures.js')
|
17
|
+
.exec('/spec/unit/spec.shared-behaviors.js')
|
18
|
+
.exec('/spec/unit/spec.jquery.js')
|
19
|
+
.exec('/spec/unit/spec.modules.js')
|
20
|
+
.exec('/spec/unit/spec.xhr.js')
|
21
|
+
.exec('/spec/unit/spec.jquery.xhr.js')
|
22
|
+
.run({ reporter: JSpec.reporters.Server, fixturePath: '/spec/fixtures' })
|
23
|
+
.report()
|
24
|
+
}
|
25
|
+
</script>
|
26
|
+
</head>
|
27
|
+
<body class="jspec" onLoad="runSuites();">
|
28
|
+
</body>
|
29
|
+
</html>
|
data/spec/server.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
|
2
|
-
puts 'Use
|
2
|
+
puts 'Use server.rb to alter anything you like, provide routes, browser support, etc'
|
@@ -19,9 +19,7 @@ var Envjs = function(){
|
|
19
19
|
Envjs[i] = arguments[1][i];
|
20
20
|
}
|
21
21
|
}
|
22
|
-
|
23
|
-
if (arguments[0] != null && arguments[0] != "")
|
24
|
-
window.location = arguments[0];
|
22
|
+
window.location = arguments[0];
|
25
23
|
};
|
26
24
|
|
27
25
|
/*
|
@@ -74,11 +72,8 @@ var Envjs = function(){
|
|
74
72
|
// for manipulating the JavaScript scope chain, put in trivial emulations
|
75
73
|
$env.debug("performing check for custom Java methods in env-js.jar");
|
76
74
|
var countOfMissing = 0, dontCare;
|
77
|
-
try { dontCare =
|
78
|
-
catch (ex){
|
79
|
-
countOfMissing++; }
|
80
|
-
try { dontCare = getProxyFor; }
|
81
|
-
catch (ex){ getProxyFor = function(obj){ return obj; };
|
75
|
+
try { dontCare = globalize; }
|
76
|
+
catch (ex){ globalize = function(){ return {}; };
|
82
77
|
countOfMissing++; }
|
83
78
|
try { dontCare = getScope; }
|
84
79
|
catch (ex){ getScope = function(){}; countOfMissing++; }
|
@@ -88,12 +83,11 @@ var Envjs = function(){
|
|
88
83
|
catch (ex){ configureScope = function(){}; countOfMissing++; }
|
89
84
|
try { dontCare = restoreScope; }
|
90
85
|
catch (ex){ restoreScope = function(){}; countOfMissing++; }
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
"not occur correctly.");
|
86
|
+
if (countOfMissing != 0 && countOfMissing != 5)
|
87
|
+
$env.warning("Some but not all of scope-manipulation functions were " +
|
88
|
+
"not present in environment. JavaScript execution may " +
|
89
|
+
"not occur correctly.");
|
90
|
+
|
97
91
|
|
98
92
|
$env.lineSource = function(e){};
|
99
93
|
|
@@ -132,6 +126,8 @@ var Envjs = function(){
|
|
132
126
|
$env.lang = '';
|
133
127
|
$env.platform = "Rhino ";//how do we get the version
|
134
128
|
|
129
|
+
$env.load = function(){};
|
130
|
+
|
135
131
|
$env.scriptTypes = {
|
136
132
|
"text/javascript" :false,
|
137
133
|
"text/envjs" :true
|
@@ -207,94 +203,77 @@ var Envjs = function(){
|
|
207
203
|
$env.loadInlineScript = function(script){};
|
208
204
|
|
209
205
|
|
210
|
-
$env.
|
211
|
-
$env.getProxyFor = function(){};
|
206
|
+
$env.globalize = function(){};
|
212
207
|
$env.getScope = function(){};
|
213
208
|
$env.setScope = function(){};
|
214
209
|
$env.configureScope = function(){};
|
215
210
|
$env.restoreScope = function(){};
|
211
|
+
$env.loadFrame = function(frame, url){
|
212
|
+
try {
|
216
213
|
|
214
|
+
var frameWindow,
|
215
|
+
makingNewWinFlag = !(frame._content);
|
216
|
+
if (makingNewWinFlag)
|
217
|
+
// a blank object, inherits from original global
|
218
|
+
// see org.mozilla.javascript.tools.envjs.Window.java
|
219
|
+
frameWindow = $env.globalize();
|
220
|
+
else
|
221
|
+
frameWindow = frame._content;
|
222
|
+
|
223
|
+
|
224
|
+
// define local variables with content of things that are
|
225
|
+
// in current global/window, because when the following
|
226
|
+
// function executes we'll have a new/blank
|
227
|
+
// global/window and won't be able to get at them....
|
228
|
+
var local__window__ = $env.window,
|
229
|
+
local_env = $env,
|
230
|
+
local_window = frame.ownerDocument.parentWindow;
|
231
|
+
|
232
|
+
// a local function gives us something whose scope
|
233
|
+
// is easy to change
|
234
|
+
var __frame__ = function(){
|
235
|
+
if (makingNewWinFlag){
|
236
|
+
local__window__(frameWindow,
|
237
|
+
local_env,
|
238
|
+
local_window,
|
239
|
+
local_window.top);
|
240
|
+
}
|
217
241
|
|
218
|
-
|
219
|
-
try {
|
220
|
-
if (frameElement._content){
|
221
|
-
$env.$unloadEventsFor(frameElement._content);
|
222
|
-
$env.reloadAWindowProxy(frameElement._content, url);
|
242
|
+
frameWindow.location = url;
|
223
243
|
}
|
224
|
-
|
225
|
-
|
226
|
-
|
244
|
+
|
245
|
+
|
246
|
+
// change scope of window object creation
|
247
|
+
// functions, so that functions/code they create
|
248
|
+
// will be scoped to new window object
|
249
|
+
// getScope()/setScope() from Window.java
|
250
|
+
var scopes = {
|
251
|
+
frame : $env.getScope(__frame__),
|
252
|
+
window : $env.getScope(local__window__),
|
253
|
+
global_load: $env.getScope(load),
|
254
|
+
local_load: $env.getScope($env.loadLocalScript)
|
255
|
+
};
|
256
|
+
|
257
|
+
$env.setScope(__frame__, frameWindow);
|
258
|
+
$env.setScope(local__window__, frameWindow);
|
259
|
+
$env.setScope($env.load, frameWindow);
|
260
|
+
$env.setScope($env.loadLocalScript, frameWindow);
|
261
|
+
|
262
|
+
__frame__();
|
263
|
+
frame._content = frameWindow;
|
264
|
+
|
265
|
+
// now restore the scope
|
266
|
+
$env.setScope(__frame__, scopes.frame);
|
267
|
+
$env.setScope(local__window__, scopes.window);
|
268
|
+
$env.setScope($env.load, scopes.global_load);
|
269
|
+
$env.setScope($env.loadLocalScript, scopes.local_load);
|
227
270
|
} catch(e){
|
228
271
|
$env.error("failed to load frame content: from " + url, e);
|
229
272
|
}
|
230
|
-
};
|
231
|
-
|
232
|
-
$env.reloadAWindowProxy = function(oldWindowProxy, url){
|
233
|
-
var newWindowProxy = $env.makeNewWindowMaybeLoad(
|
234
|
-
oldWindowProxy.opener,
|
235
|
-
oldWindowProxy.parent,
|
236
|
-
url);
|
237
|
-
var newWindow = newWindowProxy.__proto__;
|
238
|
-
|
239
|
-
oldWindowProxy.__proto__ = newWindow;
|
240
|
-
newWindow.$thisWindowsProxyObject = oldWindowProxy;
|
241
|
-
newWindow.document._parentWindow = oldWindowProxy;
|
242
|
-
};
|
243
|
-
|
244
|
-
$env.makeNewWindowMaybeLoad = function(openingWindow, parentArg, url){
|
245
|
-
var newWindow = $env.getFreshScopeObj();
|
246
|
-
var newProxy = $env.getProxyFor(newWindow);
|
247
|
-
newWindow.$thisWindowsProxyObject = newProxy;
|
248
|
-
|
249
|
-
var local__window__ = $env.window,
|
250
|
-
local_env = $env,
|
251
|
-
local_opener = openingWindow,
|
252
|
-
local_parent = parentArg ? parentArg : newWindow;
|
253
|
-
|
254
|
-
var inNewContext = function(){
|
255
|
-
local__window__(newWindow, // object to "window-ify"
|
256
|
-
local_env, // our scope for globals
|
257
|
-
local_parent, // win's "parent"
|
258
|
-
local_opener, // win's "opener"
|
259
|
-
local_parent.top, // win's "top"
|
260
|
-
false // this win isn't the original
|
261
|
-
);
|
262
|
-
if (url)
|
263
|
-
newWindow.__loadAWindowsDocument__(url);
|
264
|
-
};
|
265
273
|
|
266
|
-
var scopes = recordScopesOfKeyObjects(inNewContext);
|
267
|
-
setScopesOfKeyObjects(inNewContext, newWindow);
|
268
|
-
inNewContext(); // invoke local fn to window-ify new scope object
|
269
|
-
restoreScopesOfKeyObjects(inNewContext, scopes);
|
270
|
-
return newProxy;
|
271
274
|
};
|
272
|
-
|
273
|
-
|
274
|
-
return { // getScope()/setScope() from Window.java
|
275
|
-
frame : $env.getScope(fnToExecInOtherContext),
|
276
|
-
window : $env.getScope($env.window),
|
277
|
-
global_load : $env.getScope($env.loadIntoFnsScope),
|
278
|
-
local_load : $env.getScope($env.loadLocalScript)
|
279
|
-
};
|
280
|
-
}
|
281
|
-
|
282
|
-
function setScopesOfKeyObjects(fnToExecInOtherContext, windowObj){
|
283
|
-
$env.setScope(fnToExecInOtherContext, windowObj);
|
284
|
-
$env.setScope($env.window, windowObj);
|
285
|
-
$env.setScope($env.loadIntoFnsScope, windowObj);
|
286
|
-
$env.setScope($env.loadLocalScript, windowObj);
|
287
|
-
}
|
288
|
-
|
289
|
-
function restoreScopesOfKeyObjects(fnToExecInOtherContext, scopes){
|
290
|
-
$env.setScope(fnToExecInOtherContext, scopes.frame);
|
291
|
-
$env.setScope($env.window, scopes.window);
|
292
|
-
$env.setScope($env.loadIntoFnsScope, scopes.global_load);
|
293
|
-
$env.setScope($env.loadLocalScript, scopes.local_load);
|
294
|
-
}
|
295
|
-
})(Envjs);
|
296
|
-
|
297
|
-
/*
|
275
|
+
|
276
|
+
})(Envjs);/*
|
298
277
|
* env.rhino.js
|
299
278
|
*/
|
300
279
|
(function($env){
|
@@ -635,6 +614,9 @@ var Envjs = function(){
|
|
635
614
|
$env.lang = java.lang.System.getProperty("user.lang");
|
636
615
|
$env.platform = "Rhino ";//how do we get the version
|
637
616
|
|
617
|
+
//injected by org.mozilla.javascript.tools.envjs.
|
618
|
+
$env.load = load;
|
619
|
+
|
638
620
|
$env.scriptTypes = {
|
639
621
|
"text/javascript" :false,
|
640
622
|
"text/envjs" :true
|
@@ -644,12 +626,11 @@ var Envjs = function(){
|
|
644
626
|
$env.loadInlineScript = function(script){
|
645
627
|
var tmpFile = $env.writeToTempFile(script.text, 'js') ;
|
646
628
|
$env.debug("loading " + tmpFile);
|
647
|
-
$env.
|
629
|
+
$env.load(tmpFile);
|
648
630
|
};
|
649
631
|
|
650
632
|
//injected by org.mozilla.javascript.tools.envjs.
|
651
|
-
$env.
|
652
|
-
$env.getProxyFor = getProxyFor;
|
633
|
+
$env.globalize = globalize;
|
653
634
|
$env.getScope = getScope;
|
654
635
|
$env.setScope = setScope;
|
655
636
|
$env.configureScope = configureScope;
|
@@ -664,21 +645,17 @@ var Envjs = function(){
|
|
664
645
|
|
665
646
|
|
666
647
|
try {
|
667
|
-
|
668
|
-
Envjs.window = function($w,
|
648
|
+
|
649
|
+
Envjs.window = function($w,
|
669
650
|
$env,
|
670
651
|
$parentWindow,
|
671
|
-
$
|
672
|
-
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
|
677
|
-
|
678
|
-
return __this__;
|
679
|
-
});
|
680
|
-
$w.$isOriginalWindow = $thisIsTheOriginalWindow;
|
681
|
-
$w.$haveCalledWindowLocationSetter = false;
|
652
|
+
$initTop){
|
653
|
+
|
654
|
+
// The Window Object
|
655
|
+
var __this__ = $w;
|
656
|
+
$w.__defineGetter__('window', function(){
|
657
|
+
return __this__;
|
658
|
+
});
|
682
659
|
|
683
660
|
/*
|
684
661
|
* window.js
|
@@ -734,7 +711,7 @@ var $name;
|
|
734
711
|
|
735
712
|
// a read/write reference to the Window object that contained the script that called open() to
|
736
713
|
//open this browser window. This property is valid only for top-level window objects.
|
737
|
-
var $opener
|
714
|
+
var $opener;
|
738
715
|
|
739
716
|
// Read-only properties that specify the total height and width, in pixels, of the browser window.
|
740
717
|
// These dimensions include the height and width of the menu bar, toolbars, scrollbars, window
|
@@ -746,18 +723,10 @@ var $outerHeight = $innerHeight, $outerWidth = $innerWidth;
|
|
746
723
|
//to the right and down. These are not supported by IE.
|
747
724
|
var $pageXOffset = 0, $pageYOffset = 0;
|
748
725
|
|
749
|
-
|
750
|
-
//
|
751
|
-
//
|
752
|
-
// the window itself. If this window is a frame, this property refers
|
753
|
-
// to the window or frame that conatins it.
|
726
|
+
//A read-only reference to the Window object that contains this window or frame. If the window is
|
727
|
+
// a top-level window, parent refers to the window itself. If this window is a frame, this property
|
728
|
+
// refers to the window or frame that conatins it.
|
754
729
|
var $parent = $parentWindow;
|
755
|
-
try {
|
756
|
-
if ($parentWindow.$thisWindowsProxyObject)
|
757
|
-
$parent = $parentWindow.$thisWindowsProxyObject;
|
758
|
-
} catch(e){}
|
759
|
-
|
760
|
-
|
761
730
|
|
762
731
|
// a read-only refernce to the Screen object that specifies information about the screen:
|
763
732
|
// the number of available pixels and the number of available colors.
|
@@ -776,11 +745,6 @@ var $top = $initTop;
|
|
776
745
|
|
777
746
|
// the window property is identical to the self property and to this obj
|
778
747
|
var $window = $w;
|
779
|
-
try {
|
780
|
-
if ($w.$thisWindowsProxyObject)
|
781
|
-
$window = $w.$thisWindowsProxyObject;
|
782
|
-
} catch(e){}
|
783
|
-
|
784
748
|
|
785
749
|
$debug("Initializing Window.");
|
786
750
|
__extend__($w,{
|
@@ -793,7 +757,7 @@ __extend__($w,{
|
|
793
757
|
get frames(){return undefined;}, // TODO: not yet any code to maintain list
|
794
758
|
get length(){return undefined;}, // should be frames.length, but.... TODO
|
795
759
|
|
796
|
-
//get history(){return $history;}, - see
|
760
|
+
//get history(){return $history;}, - see location.js
|
797
761
|
get innerHeight(){return $innerHeight;},
|
798
762
|
get innerWidth(){return $innerWidth;},
|
799
763
|
get clientHeight(){return $innerHeight;},
|
@@ -821,34 +785,12 @@ __extend__($w,{
|
|
821
785
|
});
|
822
786
|
|
823
787
|
$w.open = function(url, name, features, replace){
|
824
|
-
|
825
|
-
$env.warn("'features' argument for 'window.open()' not yet implemented");
|
826
|
-
if (replace)
|
827
|
-
$env.warn("'replace' argument for 'window.open()' not yet implemented");
|
828
|
-
|
829
|
-
var newWindow = $env.makeNewWindowMaybeLoad(this, null, url);
|
830
|
-
newWindow.$name = name;
|
831
|
-
return newWindow;
|
788
|
+
//TODO. Remember to set $opener, $name
|
832
789
|
};
|
833
790
|
|
834
791
|
$w.close = function(){
|
835
|
-
$
|
836
|
-
$closed = true;
|
792
|
+
//TODO. Remember to set $closed
|
837
793
|
};
|
838
|
-
|
839
|
-
$env.$unloadEventsFor = function(windowToUnload){
|
840
|
-
try {
|
841
|
-
var event = windowToUnload.document.createEvent();
|
842
|
-
event.initEvent("unload");
|
843
|
-
windowToUnload.document.getElementsByTagName('body')[0].
|
844
|
-
dispatchEvent(event, false);
|
845
|
-
}
|
846
|
-
catch (e){} // maybe no/bad document loaded, ignore
|
847
|
-
|
848
|
-
var event = windowToUnload.document.createEvent();
|
849
|
-
event.initEvent("unload");
|
850
|
-
windowToUnload.dispatchEvent(event, false);
|
851
|
-
};
|
852
794
|
|
853
795
|
/* Time related functions - see timer.js
|
854
796
|
* - clearTimeout
|
@@ -2792,7 +2734,7 @@ $debug("Defining DOMParser");
|
|
2792
2734
|
var DOMParser = function(){};
|
2793
2735
|
__extend__(DOMParser.prototype,{
|
2794
2736
|
parseFromString: function(xmlString){
|
2795
|
-
|
2737
|
+
//$log("Parsing XML String: " +xmlString);
|
2796
2738
|
return document.implementation.createDocument().loadXML(xmlString);
|
2797
2739
|
}
|
2798
2740
|
});
|
@@ -4275,17 +4217,14 @@ var DOMImplementation = function() {
|
|
4275
4217
|
|
4276
4218
|
var __endHTMLElement__ = function(node, doc, p){
|
4277
4219
|
if(node.nodeName.toLowerCase() == 'script'){
|
4278
|
-
|
4279
|
-
|
4280
|
-
|
4281
|
-
|
4282
|
-
|
4283
|
-
|
4284
|
-
|
4285
|
-
|
4286
|
-
event.initEvent("load");
|
4287
|
-
node.dispatchEvent( event, false );
|
4288
|
-
}
|
4220
|
+
p.replaceEntities = true;
|
4221
|
+
$env.loadLocalScript(node, p);
|
4222
|
+
|
4223
|
+
// only fire event if we actually had something to load
|
4224
|
+
if (node.src && node.src.length > 0){
|
4225
|
+
var event = doc.createEvent();
|
4226
|
+
event.initEvent("load");
|
4227
|
+
node.dispatchEvent( event, false );
|
4289
4228
|
}
|
4290
4229
|
}
|
4291
4230
|
else if (node.nodeName.toLowerCase() == 'frame' ||
|
@@ -4341,7 +4280,7 @@ __extend__(DOMImplementation.prototype,{
|
|
4341
4280
|
createDocument : function(nsuri, qname, doctype){
|
4342
4281
|
//TODO - this currently returns an empty doc
|
4343
4282
|
//but needs to handle the args
|
4344
|
-
return new HTMLDocument($implementation, null
|
4283
|
+
return new HTMLDocument($implementation, null);
|
4345
4284
|
},
|
4346
4285
|
translateErrCode : function(code) {
|
4347
4286
|
//convert DOMException Code to human readable error message;
|
@@ -4892,14 +4831,8 @@ var DOMDocument = function(implementation, docParentWindow) {
|
|
4892
4831
|
this.doctype = null; // The Document Type Declaration (see DocumentType) associated with this document
|
4893
4832
|
this.implementation = implementation; // The DOMImplementation object that handles this document.
|
4894
4833
|
this._documentElement = null; // "private" variable providing the read-only document.documentElement property
|
4895
|
-
|
4896
|
-
|
4897
|
-
this._parentWindow = docParentWindow;
|
4898
|
-
try {
|
4899
|
-
if (docParentWindow.$thisWindowsProxyObject)
|
4900
|
-
this._parentWindow = docParentWindow.$thisWindowsProxyObject;
|
4901
|
-
} catch(e){}
|
4902
|
-
|
4834
|
+
this._parentWindow = docParentWindow; // "private" variable providing the read-only document.parentWindow property
|
4835
|
+
|
4903
4836
|
this.nodeName = "#document";
|
4904
4837
|
this._id = 0;
|
4905
4838
|
this._lastId = 0;
|
@@ -5640,14 +5573,13 @@ $debug("Defining HTMLDocument");
|
|
5640
5573
|
*
|
5641
5574
|
* @extends DOMDocument
|
5642
5575
|
*/
|
5643
|
-
var HTMLDocument = function(implementation, docParentWindow
|
5576
|
+
var HTMLDocument = function(implementation, docParentWindow) {
|
5644
5577
|
this.DOMDocument = DOMDocument;
|
5645
5578
|
this.DOMDocument(implementation, docParentWindow);
|
5646
5579
|
|
5647
|
-
this.
|
5580
|
+
this._refferer = "";
|
5648
5581
|
this._domain;
|
5649
5582
|
this._open = false;
|
5650
|
-
this.$async = false;
|
5651
5583
|
};
|
5652
5584
|
HTMLDocument.prototype = new DOMDocument;
|
5653
5585
|
__extend__(HTMLDocument.prototype, {
|
@@ -5784,7 +5716,14 @@ __extend__(HTMLDocument.prototype, {
|
|
5784
5716
|
return $w.location
|
5785
5717
|
},
|
5786
5718
|
get referrer(){
|
5787
|
-
|
5719
|
+
/* TODO */
|
5720
|
+
return this._refferer;
|
5721
|
+
|
5722
|
+
},
|
5723
|
+
get URL(){
|
5724
|
+
/* TODO*/
|
5725
|
+
return this._url;
|
5726
|
+
|
5788
5727
|
},
|
5789
5728
|
close : function(){
|
5790
5729
|
/* TODO */
|
@@ -5826,12 +5765,7 @@ __extend__(HTMLDocument.prototype, {
|
|
5826
5765
|
get __html__(){
|
5827
5766
|
return true;
|
5828
5767
|
|
5829
|
-
}
|
5830
|
-
get async(){ return this.$async;},
|
5831
|
-
set async(async){ this.$async = async; },
|
5832
|
-
get baseURI(){ return $env.location('./'); },
|
5833
|
-
get URL(){ return $w.location.href; },
|
5834
|
-
set URL(url){ $w.location.href = url; }
|
5768
|
+
}
|
5835
5769
|
});
|
5836
5770
|
|
5837
5771
|
$w.HTMLDocument = HTMLDocument;
|
@@ -6195,275 +6129,7 @@ $w.HTMLCollection = HTMLCollection;
|
|
6195
6129
|
});
|
6196
6130
|
};*/
|
6197
6131
|
|
6198
|
-
|
6199
|
-
* a set of convenience classes to centralize implementation of
|
6200
|
-
* properties and methods across multiple in-form elements
|
6201
|
-
*
|
6202
|
-
* the hierarchy of related HTML elements and their members is as follows:
|
6203
|
-
*
|
6204
|
-
*
|
6205
|
-
* HTMLInputCommon: common to all elements
|
6206
|
-
* .form
|
6207
|
-
*
|
6208
|
-
* <legend>
|
6209
|
-
* [common plus:]
|
6210
|
-
* .align
|
6211
|
-
*
|
6212
|
-
* <fieldset>
|
6213
|
-
* [identical to "legend" plus:]
|
6214
|
-
* .margin
|
6215
|
-
*
|
6216
|
-
*
|
6217
|
-
* ****
|
6218
|
-
*
|
6219
|
-
* <label>
|
6220
|
-
* [common plus:]
|
6221
|
-
* .dataFormatAs
|
6222
|
-
* .htmlFor
|
6223
|
-
* [plus data properties]
|
6224
|
-
*
|
6225
|
-
* <option>
|
6226
|
-
* [common plus:]
|
6227
|
-
* .defaultSelected
|
6228
|
-
* .index
|
6229
|
-
* .label
|
6230
|
-
* .selected
|
6231
|
-
* .text
|
6232
|
-
* .value // unique implementation, not duplicated
|
6233
|
-
*
|
6234
|
-
* ****
|
6235
|
-
*
|
6236
|
-
* HTMLTypeValueInputs: common to remaining elements
|
6237
|
-
* [common plus:]
|
6238
|
-
* .name
|
6239
|
-
* .type
|
6240
|
-
* .value
|
6241
|
-
* [plus data properties]
|
6242
|
-
*
|
6243
|
-
*
|
6244
|
-
* <select>
|
6245
|
-
* .length
|
6246
|
-
* .multiple
|
6247
|
-
* .options[]
|
6248
|
-
* .selectedIndex
|
6249
|
-
* .add()
|
6250
|
-
* .remove()
|
6251
|
-
* .item() // unimplemented
|
6252
|
-
* .namedItem() // unimplemented
|
6253
|
-
* [plus ".onchange"]
|
6254
|
-
* [plus focus events]
|
6255
|
-
* [plus data properties]
|
6256
|
-
* [plus ".size"]
|
6257
|
-
*
|
6258
|
-
* <button>
|
6259
|
-
* .dataFormatAs // duplicated from above, oh well....
|
6260
|
-
* [plus ".status", ".createTextRange()"]
|
6261
|
-
*
|
6262
|
-
* ****
|
6263
|
-
*
|
6264
|
-
* HTMLInputAreaCommon: common to remaining elements
|
6265
|
-
* .defaultValue
|
6266
|
-
* .readOnly
|
6267
|
-
* .handleEvent() // unimplemented
|
6268
|
-
* .select()
|
6269
|
-
* .onselect
|
6270
|
-
* [plus ".size"]
|
6271
|
-
* [plus ".status", ".createTextRange()"]
|
6272
|
-
* [plus focus events]
|
6273
|
-
* [plus ".onchange"]
|
6274
|
-
*
|
6275
|
-
* <textarea>
|
6276
|
-
* .cols
|
6277
|
-
* .rows
|
6278
|
-
* .wrap // unimplemented
|
6279
|
-
* .onscroll // unimplemented
|
6280
|
-
*
|
6281
|
-
* <input>
|
6282
|
-
* .alt
|
6283
|
-
* .accept // unimplemented
|
6284
|
-
* .checked
|
6285
|
-
* .complete // unimplemented
|
6286
|
-
* .defaultChecked
|
6287
|
-
* .dynsrc // unimplemented
|
6288
|
-
* .height
|
6289
|
-
* .hspace // unimplemented
|
6290
|
-
* .indeterminate // unimplemented
|
6291
|
-
* .loop // unimplemented
|
6292
|
-
* .lowsrc // unimplemented
|
6293
|
-
* .maxLength
|
6294
|
-
* .src
|
6295
|
-
* .start // unimplemented
|
6296
|
-
* .useMap
|
6297
|
-
* .vspace // unimplemented
|
6298
|
-
* .width
|
6299
|
-
* .onclick
|
6300
|
-
* [plus ".size"]
|
6301
|
-
* [plus ".status", ".createTextRange()"]
|
6302
|
-
|
6303
|
-
* [data properties] // unimplemented
|
6304
|
-
* .dataFld
|
6305
|
-
* .dataSrc
|
6306
|
-
|
6307
|
-
* [status stuff] // unimplemented
|
6308
|
-
* .status
|
6309
|
-
* .createTextRange()
|
6310
|
-
|
6311
|
-
* [focus events]
|
6312
|
-
* .onblur
|
6313
|
-
* .onfocus
|
6314
|
-
|
6315
|
-
*/
|
6316
|
-
|
6317
|
-
|
6318
|
-
|
6319
|
-
|
6320
|
-
$debug("Defining input element 'mix in' objects");
|
6321
|
-
var inputElements_dataProperties = {};
|
6322
|
-
var inputElements_status = {};
|
6323
|
-
|
6324
|
-
var inputElements_onchange = {
|
6325
|
-
onchange: function(event){
|
6326
|
-
__eval__(this.getAttribute('onchange')||'', this)
|
6327
|
-
}
|
6328
|
-
};
|
6329
|
-
|
6330
|
-
var inputElements_size = {
|
6331
|
-
get size(){
|
6332
|
-
return Number(this.getAttribute('size'));
|
6333
|
-
},
|
6334
|
-
set size(value){
|
6335
|
-
this.setAttribute('size',value);
|
6336
|
-
}
|
6337
|
-
};
|
6338
|
-
|
6339
|
-
var inputElements_focusEvents = {
|
6340
|
-
blur: function(){
|
6341
|
-
__blur__(this);
|
6342
|
-
|
6343
|
-
if (this._oldValue != this.value){
|
6344
|
-
var event = document.createEvent();
|
6345
|
-
event.initEvent("change");
|
6346
|
-
this.dispatchEvent( event );
|
6347
|
-
}
|
6348
|
-
},
|
6349
|
-
focus: function(){
|
6350
|
-
__focus__(this);
|
6351
|
-
this._oldValue = this.value;
|
6352
|
-
}
|
6353
|
-
};
|
6354
|
-
|
6355
|
-
|
6356
|
-
$debug("Defining HTMLInputCommon");
|
6357
|
-
|
6358
|
-
/*
|
6359
|
-
* HTMLInputCommon - convenience class, not DOM
|
6360
|
-
*/
|
6361
|
-
var HTMLInputCommon = function(ownerDocument) {
|
6362
|
-
this.HTMLElement = HTMLElement;
|
6363
|
-
this.HTMLElement(ownerDocument);
|
6364
|
-
};
|
6365
|
-
HTMLInputCommon.prototype = new HTMLElement;
|
6366
|
-
__extend__(HTMLInputCommon.prototype, {
|
6367
|
-
get form(){
|
6368
|
-
var parent = this.parentNode;
|
6369
|
-
while(parent.nodeName.toLowerCase() != 'form'){
|
6370
|
-
parent = parent.parentNode;
|
6371
|
-
}
|
6372
|
-
return parent;
|
6373
|
-
},
|
6374
|
-
get accessKey(){
|
6375
|
-
return this.getAttribute('accesskey');
|
6376
|
-
},
|
6377
|
-
set accessKey(value){
|
6378
|
-
this.setAttribute('accesskey',value);
|
6379
|
-
},
|
6380
|
-
get access(){
|
6381
|
-
return this.getAttribute('access');
|
6382
|
-
},
|
6383
|
-
set access(value){
|
6384
|
-
this.setAttribute('access', value);
|
6385
|
-
},
|
6386
|
-
get disabled(){
|
6387
|
-
return (this.getAttribute('disabled')=='disabled');
|
6388
|
-
},
|
6389
|
-
set disabled(value){
|
6390
|
-
this.setAttribute('disabled', (value ? 'disabled' :''));
|
6391
|
-
}
|
6392
|
-
});
|
6393
|
-
|
6394
|
-
$w.HTMLInputCommon = HTMLInputCommon;
|
6395
|
-
|
6396
|
-
|
6397
|
-
$debug("Defining HTMLTypeValueInputs");
|
6398
|
-
|
6399
|
-
/*
|
6400
|
-
* HTMLTypeValueInputs - convenience class, not DOM
|
6401
|
-
*/
|
6402
|
-
var HTMLTypeValueInputs = function(ownerDocument) {
|
6403
|
-
this.HTMLInputCommon = HTMLInputCommon;
|
6404
|
-
this.HTMLInputCommon(ownerDocument);
|
6405
|
-
|
6406
|
-
this._oldValue = "";
|
6407
|
-
};
|
6408
|
-
HTMLTypeValueInputs.prototype = new HTMLInputCommon;
|
6409
|
-
__extend__(HTMLTypeValueInputs.prototype, inputElements_size);
|
6410
|
-
__extend__(HTMLTypeValueInputs.prototype, inputElements_status);
|
6411
|
-
__extend__(HTMLTypeValueInputs.prototype, inputElements_dataProperties);
|
6412
|
-
__extend__(HTMLTypeValueInputs.prototype, {
|
6413
|
-
get name(){
|
6414
|
-
return this.getAttribute('name')||'';
|
6415
|
-
},
|
6416
|
-
set name(value){
|
6417
|
-
this.setAttribute('name',value);
|
6418
|
-
},
|
6419
|
-
get type(){
|
6420
|
-
return this.getAttribute('type');
|
6421
|
-
},
|
6422
|
-
get value(){
|
6423
|
-
return this.getAttribute('value')||'';
|
6424
|
-
},
|
6425
|
-
set value(newValue){
|
6426
|
-
this.setAttribute('value',newValue);
|
6427
|
-
}
|
6428
|
-
});
|
6429
|
-
|
6430
|
-
$w.HTMLTypeValueInputs = HTMLTypeValueInputs;
|
6431
|
-
|
6432
|
-
|
6433
|
-
|
6434
|
-
$debug("Defining HTMLInputAreaCommon");
|
6435
|
-
|
6436
|
-
/*
|
6437
|
-
* HTMLInputAreaCommon - convenience class, not DOM
|
6438
|
-
*/
|
6439
|
-
var HTMLInputAreaCommon = function(ownerDocument) {
|
6440
|
-
this.HTMLTypeValueInputs = HTMLTypeValueInputs;
|
6441
|
-
this.HTMLTypeValueInputs(ownerDocument);
|
6442
|
-
};
|
6443
|
-
HTMLInputAreaCommon.prototype = new HTMLTypeValueInputs;
|
6444
|
-
__extend__(HTMLInputAreaCommon.prototype, inputElements_focusEvents);
|
6445
|
-
__extend__(HTMLInputAreaCommon.prototype, inputElements_onchange);
|
6446
|
-
__extend__(HTMLInputAreaCommon.prototype, {
|
6447
|
-
get defaultValue(){
|
6448
|
-
return this.getAttribute('defaultValue');
|
6449
|
-
},
|
6450
|
-
set defaultValue(value){
|
6451
|
-
this.setAttribute('defaultValue', value);
|
6452
|
-
},
|
6453
|
-
get readOnly(){
|
6454
|
-
return (this.getAttribute('readonly')=='readonly');
|
6455
|
-
},
|
6456
|
-
set readOnly(value){
|
6457
|
-
this.setAttribute('readonly', (value ? 'readonly' :''));
|
6458
|
-
},
|
6459
|
-
select:function(){
|
6460
|
-
__select__(this);
|
6461
|
-
|
6462
|
-
}
|
6463
|
-
});
|
6464
|
-
|
6465
|
-
$w.HTMLInputAreaCommon = HTMLInputAreaCommon;
|
6466
|
-
$debug("Defining HTMLAnchorElement");
|
6132
|
+
$debug("Defining HTMLAnchorElement");
|
6467
6133
|
/*
|
6468
6134
|
* HTMLAnchorElement - DOM Level 2
|
6469
6135
|
*/
|
@@ -6763,35 +6429,54 @@ HTMLBodyElement.prototype = new HTMLElement;
|
|
6763
6429
|
__extend__(HTMLBodyElement.prototype, {
|
6764
6430
|
onload: function(event){
|
6765
6431
|
__eval__(this.getAttribute('onload')||'', this)
|
6766
|
-
},
|
6767
|
-
onunload: function(event){
|
6768
|
-
__eval__(this.getAttribute('onunload')||'', this)
|
6769
6432
|
}
|
6770
6433
|
});
|
6771
6434
|
|
6772
6435
|
$w.HTMLBodyElement = HTMLBodyElement;
|
6773
6436
|
$debug("Defining HTMLButtonElement");
|
6774
|
-
/*
|
6437
|
+
/*
|
6775
6438
|
* HTMLButtonElement - DOM Level 2
|
6776
6439
|
*/
|
6777
6440
|
var HTMLButtonElement = function(ownerDocument) {
|
6778
|
-
this.
|
6779
|
-
this.
|
6441
|
+
this.HTMLElement = HTMLElement;
|
6442
|
+
this.HTMLElement(ownerDocument);
|
6780
6443
|
};
|
6781
|
-
HTMLButtonElement.prototype = new
|
6782
|
-
__extend__(HTMLButtonElement.prototype, inputElements_status);
|
6444
|
+
HTMLButtonElement.prototype = new HTMLElement;
|
6783
6445
|
__extend__(HTMLButtonElement.prototype, {
|
6784
|
-
get
|
6785
|
-
|
6446
|
+
get form(){
|
6447
|
+
var parent = this.parent;
|
6448
|
+
while(parent.nodeName.toLowerCase() != 'form'){
|
6449
|
+
parent = parent.parent;
|
6450
|
+
}
|
6451
|
+
return parent;
|
6452
|
+
},
|
6453
|
+
get accessKey(){
|
6454
|
+
return this.getAttribute('accesskey');
|
6455
|
+
},
|
6456
|
+
set accessKey(value){
|
6457
|
+
this.setAttribute('accesskey',value);
|
6458
|
+
},
|
6459
|
+
/*get tabIndex(){
|
6460
|
+
return Number(this.getAttribute('tabindex'));
|
6461
|
+
},
|
6462
|
+
set tabIndex(value){
|
6463
|
+
this.setAttribute('tabindex',Number(value));
|
6464
|
+
},*/
|
6465
|
+
get type(){
|
6466
|
+
return this.getAttribute('type');
|
6786
6467
|
},
|
6787
|
-
set
|
6788
|
-
this.setAttribute('
|
6468
|
+
set type(value){
|
6469
|
+
this.setAttribute('type',value);
|
6470
|
+
},
|
6471
|
+
get value(){
|
6472
|
+
return this.getAttribute('value');
|
6473
|
+
},
|
6474
|
+
set value(value){
|
6475
|
+
this.setAttribute('value',value);
|
6789
6476
|
}
|
6790
6477
|
});
|
6791
6478
|
|
6792
|
-
$w.HTMLButtonElement = HTMLButtonElement;
|
6793
|
-
|
6794
|
-
$debug("Defining HTMLTableColElement");
|
6479
|
+
$w.HTMLButtonElement = HTMLButtonElement; $debug("Defining HTMLTableColElement");
|
6795
6480
|
/*
|
6796
6481
|
* HTMLTableColElement - DOM Level 2
|
6797
6482
|
*/
|
@@ -6892,45 +6577,26 @@ __extend__(HTMLDivElement.prototype, {
|
|
6892
6577
|
});
|
6893
6578
|
|
6894
6579
|
$w.HTMLDivElement = HTMLDivElement;
|
6895
|
-
$debug("Defining HTMLLegendElement");
|
6896
|
-
/*
|
6897
|
-
* HTMLLegendElement - DOM Level 2
|
6898
|
-
*/
|
6899
|
-
var HTMLLegendElement = function(ownerDocument) {
|
6900
|
-
this.HTMLInputCommon = HTMLInputCommon;
|
6901
|
-
this.HTMLInputCommon(ownerDocument);
|
6902
|
-
};
|
6903
|
-
HTMLLegendElement.prototype = new HTMLInputCommon;
|
6904
|
-
__extend__(HTMLLegendElement.prototype, {
|
6905
|
-
get align(){
|
6906
|
-
return this.getAttribute('align');
|
6907
|
-
},
|
6908
|
-
set align(value){
|
6909
|
-
this.setAttribute('align',value);
|
6910
|
-
}
|
6911
|
-
});
|
6912
|
-
|
6913
|
-
$w.HTMLLegendElement = HTMLLegendElement;
|
6914
6580
|
$debug("Defining HTMLFieldSetElement");
|
6915
|
-
/*
|
6581
|
+
/*
|
6916
6582
|
* HTMLFieldSetElement - DOM Level 2
|
6917
6583
|
*/
|
6918
6584
|
var HTMLFieldSetElement = function(ownerDocument) {
|
6919
|
-
this.
|
6920
|
-
this.
|
6585
|
+
this.HTMLElement = HTMLElement;
|
6586
|
+
this.HTMLElement(ownerDocument);
|
6921
6587
|
};
|
6922
|
-
HTMLFieldSetElement.prototype = new
|
6588
|
+
HTMLFieldSetElement.prototype = new HTMLElement;
|
6923
6589
|
__extend__(HTMLFieldSetElement.prototype, {
|
6924
|
-
get
|
6925
|
-
|
6926
|
-
|
6927
|
-
|
6928
|
-
|
6590
|
+
get form(){
|
6591
|
+
var parent = this.parent;
|
6592
|
+
while(parent.nodeName.toLowerCase() != 'form'){
|
6593
|
+
parent = parent.parent;
|
6594
|
+
}
|
6595
|
+
return parent;
|
6929
6596
|
}
|
6930
6597
|
});
|
6931
6598
|
|
6932
|
-
$w.HTMLFieldSetElement = HTMLFieldSetElement;
|
6933
|
-
$debug("Defining HTMLFormElement");
|
6599
|
+
$w.HTMLFieldSetElement = HTMLFieldSetElement; $debug("Defining HTMLFormElement");
|
6934
6600
|
/*
|
6935
6601
|
* HTMLFormElement - DOM Level 2
|
6936
6602
|
*/
|
@@ -7241,18 +6907,48 @@ __extend__(HTMLImageElement.prototype, {
|
|
7241
6907
|
});
|
7242
6908
|
|
7243
6909
|
$w.HTMLImageElement = HTMLImageElement;$debug("Defining HTMLInputElement");
|
7244
|
-
/*
|
6910
|
+
/*
|
7245
6911
|
* HTMLInputElement - DOM Level 2
|
7246
6912
|
*/
|
7247
6913
|
var HTMLInputElement = function(ownerDocument) {
|
7248
|
-
this.
|
7249
|
-
this.
|
6914
|
+
this.HTMLElement = HTMLElement;
|
6915
|
+
this.HTMLElement(ownerDocument);
|
6916
|
+
|
6917
|
+
this._oldValue = "";
|
7250
6918
|
};
|
7251
|
-
HTMLInputElement.prototype = new
|
6919
|
+
HTMLInputElement.prototype = new HTMLElement;
|
7252
6920
|
__extend__(HTMLInputElement.prototype, {
|
7253
|
-
get
|
7254
|
-
return this.getAttribute('
|
7255
|
-
},
|
6921
|
+
get defaultValue(){
|
6922
|
+
return this.getAttribute('defaultValue');
|
6923
|
+
},
|
6924
|
+
set defaultValue(value){
|
6925
|
+
this.setAttribute('defaultValue', value);
|
6926
|
+
},
|
6927
|
+
get defaultChecked(){
|
6928
|
+
return this.getAttribute('defaultChecked');
|
6929
|
+
},
|
6930
|
+
get form(){
|
6931
|
+
var parent = this.parent;
|
6932
|
+
while(parent.nodeName.toLowerCase() != 'form'){
|
6933
|
+
parent = parent.parent;
|
6934
|
+
}
|
6935
|
+
return parent;
|
6936
|
+
},
|
6937
|
+
get accessKey(){
|
6938
|
+
return this.getAttribute('accesskey');
|
6939
|
+
},
|
6940
|
+
set accessKey(value){
|
6941
|
+
this.setAttribute('accesskey',value);
|
6942
|
+
},
|
6943
|
+
get access(){
|
6944
|
+
return this.getAttribute('access');
|
6945
|
+
},
|
6946
|
+
set access(value){
|
6947
|
+
this.setAttribute('access', value);
|
6948
|
+
},
|
6949
|
+
get alt(){
|
6950
|
+
return this.getAttribute('alt');
|
6951
|
+
},
|
7256
6952
|
set alt(value){
|
7257
6953
|
this.setAttribute('alt', value);
|
7258
6954
|
},
|
@@ -7262,14 +6958,11 @@ __extend__(HTMLInputElement.prototype, {
|
|
7262
6958
|
set checked(value){
|
7263
6959
|
this.setAttribute('checked', (value ? 'checked' :''));
|
7264
6960
|
},
|
7265
|
-
get
|
7266
|
-
return this.getAttribute('
|
7267
|
-
},
|
7268
|
-
get height(){
|
7269
|
-
return this.getAttribute('height');
|
6961
|
+
get disabled(){
|
6962
|
+
return (this.getAttribute('disabled')=='disabled');
|
7270
6963
|
},
|
7271
|
-
set
|
7272
|
-
this.setAttribute('
|
6964
|
+
set disabled(value){
|
6965
|
+
this.setAttribute('disabled', (value ? 'disabled' :''));
|
7273
6966
|
},
|
7274
6967
|
get maxLength(){
|
7275
6968
|
return Number(this.getAttribute('maxlength')||'0');
|
@@ -7277,55 +6970,136 @@ __extend__(HTMLInputElement.prototype, {
|
|
7277
6970
|
set maxLength(value){
|
7278
6971
|
this.setAttribute('maxlength', value);
|
7279
6972
|
},
|
6973
|
+
get name(){
|
6974
|
+
return this.getAttribute('name')||'';
|
6975
|
+
},
|
6976
|
+
set name(value){
|
6977
|
+
this.setAttribute('name', value);
|
6978
|
+
},
|
6979
|
+
get readOnly(){
|
6980
|
+
return (this.getAttribute('readonly')=='readonly');
|
6981
|
+
},
|
6982
|
+
set readOnly(value){
|
6983
|
+
this.setAttribute('readonly', (value ? 'readonly' :''));
|
6984
|
+
},
|
6985
|
+
get size(){
|
6986
|
+
return this.getAttribute('size');
|
6987
|
+
},
|
6988
|
+
set size(value){
|
6989
|
+
this.setAttribute('size', value);
|
6990
|
+
},
|
7280
6991
|
get src(){
|
7281
6992
|
return this.getAttribute('src');
|
7282
6993
|
},
|
7283
6994
|
set src(value){
|
7284
6995
|
this.setAttribute('src', value);
|
7285
6996
|
},
|
6997
|
+
/*get tabIndex(){
|
6998
|
+
return Number(this.getAttribute('tabindex'));
|
6999
|
+
},
|
7000
|
+
set tabIndex(value){
|
7001
|
+
this.setAttribute('tabindex',Number(value));
|
7002
|
+
},*/
|
7003
|
+
get type(){
|
7004
|
+
return this.getAttribute('type');
|
7005
|
+
},
|
7006
|
+
set type(value){
|
7007
|
+
this.setAttribute('type',value);
|
7008
|
+
},
|
7286
7009
|
get useMap(){
|
7287
7010
|
return this.getAttribute('map');
|
7288
7011
|
},
|
7289
|
-
get
|
7290
|
-
return this.getAttribute('
|
7012
|
+
get value(){
|
7013
|
+
return this.getAttribute('value');
|
7291
7014
|
},
|
7292
|
-
set
|
7293
|
-
this.
|
7015
|
+
set value(value){
|
7016
|
+
if(this.defaultValue===null&&this.value!==null)
|
7017
|
+
this.defaultValue = this.value;
|
7018
|
+
this.setAttribute('value',value);
|
7294
7019
|
},
|
7295
|
-
|
7296
|
-
|
7020
|
+
blur:function(){
|
7021
|
+
__blur__(this);
|
7022
|
+
|
7023
|
+
if (this._oldValue != this.value){
|
7024
|
+
var event = document.createEvent();
|
7025
|
+
event.initEvent("change");
|
7026
|
+
this.dispatchEvent( event );
|
7027
|
+
}
|
7028
|
+
},
|
7029
|
+
focus:function(){
|
7030
|
+
__focus__(this);
|
7031
|
+
this._oldValue = this.value;
|
7032
|
+
},
|
7033
|
+
select:function(){
|
7034
|
+
__select__(this);
|
7035
|
+
|
7036
|
+
},
|
7037
|
+
click:function(){
|
7038
|
+
__click__(this);
|
7039
|
+
|
7040
|
+
},
|
7041
|
+
onchange: function(event){
|
7042
|
+
__eval__(this.getAttribute('onchange')||'', this)
|
7297
7043
|
}
|
7298
7044
|
});
|
7299
7045
|
|
7300
|
-
$w.HTMLInputElement = HTMLInputElement;
|
7301
|
-
|
7302
|
-
$debug("Defining HTMLLabelElement");
|
7046
|
+
$w.HTMLInputElement = HTMLInputElement;$debug("Defining HTMLLabelElement");
|
7303
7047
|
/*
|
7304
7048
|
* HTMLLabelElement - DOM Level 2
|
7305
7049
|
*/
|
7306
7050
|
var HTMLLabelElement = function(ownerDocument) {
|
7307
|
-
this.
|
7308
|
-
this.
|
7051
|
+
this.HTMLElement = HTMLElement;
|
7052
|
+
this.HTMLElement(ownerDocument);
|
7309
7053
|
};
|
7310
|
-
HTMLLabelElement.prototype = new
|
7311
|
-
__extend__(HTMLLabelElement.prototype, inputElements_dataProperties);
|
7054
|
+
HTMLLabelElement.prototype = new HTMLElement;
|
7312
7055
|
__extend__(HTMLLabelElement.prototype, {
|
7056
|
+
get form(){
|
7057
|
+
var parent = this.parent;
|
7058
|
+
while(parent.nodeName.toLowerCase() != 'form'){
|
7059
|
+
parent = parent.parent;
|
7060
|
+
}
|
7061
|
+
return parent;
|
7062
|
+
},
|
7063
|
+
get accessKey(){
|
7064
|
+
return this.getAttribute('accesskey');
|
7065
|
+
},
|
7066
|
+
set accessKey(value){
|
7067
|
+
this.setAttribute('accesskey',value);
|
7068
|
+
},
|
7313
7069
|
get htmlFor(){
|
7314
7070
|
return this.getAttribute('for');
|
7315
7071
|
},
|
7316
7072
|
set htmlFor(value){
|
7317
7073
|
this.setAttribute('for',value);
|
7074
|
+
}
|
7075
|
+
});
|
7076
|
+
|
7077
|
+
$w.HTMLLabelElement = HTMLLabelElement; $debug("Defining HTMLLegendElement");
|
7078
|
+
/*
|
7079
|
+
* HTMLLegendElement - DOM Level 2
|
7080
|
+
*/
|
7081
|
+
var HTMLLegendElement = function(ownerDocument) {
|
7082
|
+
this.HTMLElement = HTMLElement;
|
7083
|
+
this.HTMLElement(ownerDocument);
|
7084
|
+
};
|
7085
|
+
HTMLLegendElement.prototype = new HTMLElement;
|
7086
|
+
__extend__(HTMLLegendElement.prototype, {
|
7087
|
+
get form(){
|
7088
|
+
var parent = this.parent;
|
7089
|
+
while(parent.nodeName.toLowerCase() != 'form'){
|
7090
|
+
parent = parent.parent;
|
7091
|
+
}
|
7092
|
+
return parent;
|
7318
7093
|
},
|
7319
|
-
get
|
7320
|
-
return this.getAttribute('
|
7094
|
+
get accessKey(){
|
7095
|
+
return this.getAttribute('accesskey');
|
7321
7096
|
},
|
7322
|
-
set
|
7323
|
-
this.setAttribute('
|
7097
|
+
set accessKey(value){
|
7098
|
+
this.setAttribute('accesskey',value);
|
7324
7099
|
}
|
7325
7100
|
});
|
7326
7101
|
|
7327
|
-
$w.
|
7328
|
-
/**
|
7102
|
+
$w.HTMLLegendElement = HTMLLegendElement; /**
|
7329
7103
|
* Link - HTMLElement
|
7330
7104
|
*/
|
7331
7105
|
$w.__defineGetter__("Link", function(){
|
@@ -7576,21 +7350,33 @@ __extend__(HTMLOptGroupElement.prototype, {
|
|
7576
7350
|
});
|
7577
7351
|
|
7578
7352
|
$w.HTMLOptGroupElement = HTMLOptGroupElement; $debug("Defining HTMLOptionElement");
|
7579
|
-
/*
|
7353
|
+
/*
|
7580
7354
|
* HTMLOptionElement - DOM Level 2
|
7581
7355
|
*/
|
7582
7356
|
var HTMLOptionElement = function(ownerDocument) {
|
7583
|
-
this.
|
7584
|
-
this.
|
7357
|
+
this.HTMLElement = HTMLElement;
|
7358
|
+
this.HTMLElement(ownerDocument);
|
7585
7359
|
};
|
7586
|
-
HTMLOptionElement.prototype = new
|
7360
|
+
HTMLOptionElement.prototype = new HTMLElement;
|
7587
7361
|
__extend__(HTMLOptionElement.prototype, {
|
7362
|
+
get form(){
|
7363
|
+
var parent = this.parent;
|
7364
|
+
while(parent.nodeName.toLowerCase() != 'form'){
|
7365
|
+
parent = parent.parent;
|
7366
|
+
}
|
7367
|
+
return parent;
|
7368
|
+
},
|
7588
7369
|
get defaultSelected(){
|
7589
7370
|
return this.getAttribute('defaultSelected');
|
7590
7371
|
},
|
7591
7372
|
set defaultSelected(value){
|
7592
7373
|
this.setAttribute('defaultSelected',value);
|
7593
7374
|
},
|
7375
|
+
get text(){
|
7376
|
+
return ((this.nodeValue === null) || (this.nodeValue ===undefined)) ?
|
7377
|
+
this.innerHTML :
|
7378
|
+
this.nodeValue;
|
7379
|
+
},
|
7594
7380
|
get index(){
|
7595
7381
|
var options = this.parent.childNodes;
|
7596
7382
|
for(var i; i<options.length;i++){
|
@@ -7599,6 +7385,12 @@ __extend__(HTMLOptionElement.prototype, {
|
|
7599
7385
|
}
|
7600
7386
|
return -1;
|
7601
7387
|
},
|
7388
|
+
get disabled(){
|
7389
|
+
return this.getAttribute('disabled');
|
7390
|
+
},
|
7391
|
+
set disabled(value){
|
7392
|
+
this.setAttribute('disabled',value);
|
7393
|
+
},
|
7602
7394
|
get label(){
|
7603
7395
|
return this.getAttribute('label');
|
7604
7396
|
},
|
@@ -7613,14 +7405,9 @@ __extend__(HTMLOptionElement.prototype, {
|
|
7613
7405
|
this.defaultSelected = this.selected;
|
7614
7406
|
this.setAttribute('selected', (value ? 'selected' :''));
|
7615
7407
|
},
|
7616
|
-
get text(){
|
7617
|
-
return ((this.nodeValue === null) || (this.nodeValue ===undefined)) ?
|
7618
|
-
this.innerHTML :
|
7619
|
-
this.nodeValue;
|
7620
|
-
},
|
7621
7408
|
get value(){
|
7622
7409
|
return ((this.getAttribute('value') === undefined) || (this.getAttribute('value') === null)) ?
|
7623
|
-
this.text :
|
7410
|
+
this.text :
|
7624
7411
|
this.getAttribute('value');
|
7625
7412
|
},
|
7626
7413
|
set value(value){
|
@@ -7741,79 +7528,119 @@ $w.HTMLScriptElement = HTMLScriptElement;$debug("Defining HTMLSelectElement");
|
|
7741
7528
|
* HTMLSelectElement - DOM Level 2
|
7742
7529
|
*/
|
7743
7530
|
var HTMLSelectElement = function(ownerDocument) {
|
7744
|
-
this.
|
7745
|
-
this.
|
7531
|
+
this.HTMLElement = HTMLElement;
|
7532
|
+
this.HTMLElement(ownerDocument);
|
7746
7533
|
|
7747
7534
|
this._oldIndex = -1;
|
7748
7535
|
};
|
7749
|
-
HTMLSelectElement.prototype = new
|
7750
|
-
__extend__(HTMLSelectElement.prototype, inputElements_dataProperties);
|
7751
|
-
__extend__(HTMLButtonElement.prototype, inputElements_size);
|
7752
|
-
__extend__(HTMLSelectElement.prototype, inputElements_onchange);
|
7753
|
-
__extend__(HTMLSelectElement.prototype, inputElements_focusEvents);
|
7536
|
+
HTMLSelectElement.prototype = new HTMLElement;
|
7754
7537
|
__extend__(HTMLSelectElement.prototype, {
|
7755
|
-
|
7756
|
-
|
7757
|
-
|
7538
|
+
get type(){
|
7539
|
+
return this.getAttribute('type');
|
7540
|
+
},
|
7541
|
+
get selectedIndex(){
|
7542
|
+
var options = this.options;
|
7543
|
+
for(var i=0;i<options.length;i++){
|
7544
|
+
if(options[i].selected){
|
7545
|
+
return i;
|
7546
|
+
}
|
7547
|
+
};
|
7548
|
+
return -1;
|
7549
|
+
},
|
7550
|
+
set selectedIndex(value){
|
7551
|
+
if (this.selectedIndex != -1) {
|
7552
|
+
this.options[this.selectedIndex].selected = '';
|
7553
|
+
}
|
7554
|
+
var option = this.options[Number(value)];
|
7555
|
+
if (option) {
|
7556
|
+
option.selected = 'selected';
|
7557
|
+
}
|
7558
|
+
},
|
7559
|
+
get value(){
|
7560
|
+
return this.getAttribute('value')||'';
|
7561
|
+
},
|
7562
|
+
set value(value) {
|
7758
7563
|
var options = this.options,
|
7759
7564
|
i, index;
|
7760
7565
|
for (i=0; i<options.length; i++) {
|
7761
|
-
if (options[i].value ==
|
7566
|
+
if (options[i].value == value) {
|
7762
7567
|
index = i;
|
7763
7568
|
break;
|
7764
7569
|
}
|
7765
7570
|
}
|
7766
7571
|
if (index !== undefined) {
|
7767
|
-
this.setAttribute('value',
|
7572
|
+
this.setAttribute('value', value);
|
7768
7573
|
this.selectedIndex = index;
|
7769
7574
|
}
|
7770
7575
|
},
|
7771
|
-
get value(){ // if we only over-ride one, then getter becomes undefined
|
7772
|
-
return this.getAttribute('value')||'';
|
7773
|
-
},
|
7774
|
-
|
7775
7576
|
get length(){
|
7776
7577
|
return this.options.length;
|
7777
7578
|
},
|
7579
|
+
get form(){
|
7580
|
+
var parent = this.parent;
|
7581
|
+
while(parent.nodeName.toLowerCase() != 'form'){
|
7582
|
+
parent = parent.parent;
|
7583
|
+
}
|
7584
|
+
return parent;
|
7585
|
+
},
|
7586
|
+
get options(){
|
7587
|
+
return this.getElementsByTagName('option');
|
7588
|
+
},
|
7589
|
+
get disabled(){
|
7590
|
+
return (this.getAttribute('disabled')=='disabled');
|
7591
|
+
},
|
7592
|
+
set disabled(value){
|
7593
|
+
this.setAttribute('disabled', (value ? 'disabled' :''));
|
7594
|
+
},
|
7778
7595
|
get multiple(){
|
7779
7596
|
return this.getAttribute('multiple');
|
7780
7597
|
},
|
7781
7598
|
set multiple(value){
|
7782
7599
|
this.setAttribute('multiple',value);
|
7783
7600
|
},
|
7784
|
-
get
|
7785
|
-
return this.
|
7601
|
+
get name(){
|
7602
|
+
return this.getAttribute('name')||'';
|
7786
7603
|
},
|
7787
|
-
|
7788
|
-
|
7789
|
-
for(var i=0;i<options.length;i++){
|
7790
|
-
if(options[i].selected){
|
7791
|
-
return i;
|
7792
|
-
}
|
7793
|
-
};
|
7794
|
-
return -1;
|
7604
|
+
set name(value){
|
7605
|
+
this.setAttribute('name',value);
|
7795
7606
|
},
|
7796
|
-
|
7797
|
-
|
7798
|
-
this.options[this.selectedIndex].selected = '';
|
7799
|
-
}
|
7800
|
-
var option = this.options[Number(value)];
|
7801
|
-
if (option) {
|
7802
|
-
option.selected = 'selected';
|
7803
|
-
}
|
7607
|
+
get size(){
|
7608
|
+
return Number(this.getAttribute('size'));
|
7804
7609
|
},
|
7805
|
-
|
7610
|
+
set size(value){
|
7611
|
+
this.setAttribute('size',value);
|
7612
|
+
},
|
7613
|
+
/*get tabIndex(){
|
7614
|
+
return Number(this.getAttribute('tabindex'));
|
7615
|
+
},
|
7616
|
+
set tabIndex(value){
|
7617
|
+
this.setAttribute('tabindex',value);
|
7618
|
+
},*/
|
7806
7619
|
add : function(){
|
7807
7620
|
__add__(this);
|
7808
7621
|
},
|
7809
7622
|
remove : function(){
|
7810
7623
|
__remove__(this);
|
7624
|
+
},
|
7625
|
+
blur: function(){
|
7626
|
+
__blur__(this);
|
7627
|
+
|
7628
|
+
if (this._oldIndex != this.selectedIndex){
|
7629
|
+
var event = document.createEvent();
|
7630
|
+
event.initEvent("change");
|
7631
|
+
this.dispatchEvent( event );
|
7632
|
+
}
|
7633
|
+
},
|
7634
|
+
focus: function(){
|
7635
|
+
__focus__(this);
|
7636
|
+
this._oldIndex = this.selectedIndex;
|
7637
|
+
},
|
7638
|
+
onchange: function(event){
|
7639
|
+
__eval__(this.getAttribute('onchange')||'', this)
|
7811
7640
|
}
|
7812
7641
|
});
|
7813
7642
|
|
7814
|
-
$w.HTMLSelectElement = HTMLSelectElement;
|
7815
|
-
|
7816
|
-
$debug("Defining HTMLStyleElement");
|
7643
|
+
$w.HTMLSelectElement = HTMLSelectElement;$debug("Defining HTMLStyleElement");
|
7817
7644
|
/*
|
7818
7645
|
* HTMLStyleElement - DOM Level 2
|
7819
7646
|
*/
|
@@ -8154,10 +7981,12 @@ $w.HTMLTableCellElement = HTMLTableCellElement;$debug("Defining HTMLTextAreaElem
|
|
8154
7981
|
* HTMLTextAreaElement - DOM Level 2
|
8155
7982
|
*/
|
8156
7983
|
var HTMLTextAreaElement = function(ownerDocument) {
|
8157
|
-
this.
|
8158
|
-
this.
|
7984
|
+
this.HTMLElement = HTMLElement;
|
7985
|
+
this.HTMLElement(ownerDocument);
|
7986
|
+
|
7987
|
+
this._oldValue = null;
|
8159
7988
|
};
|
8160
|
-
HTMLTextAreaElement.prototype = new
|
7989
|
+
HTMLTextAreaElement.prototype = new HTMLElement;
|
8161
7990
|
__extend__(HTMLTextAreaElement.prototype, {
|
8162
7991
|
get cols(){
|
8163
7992
|
return this.getAttribute('cols');
|
@@ -8170,6 +7999,100 @@ __extend__(HTMLTextAreaElement.prototype, {
|
|
8170
7999
|
},
|
8171
8000
|
set rows(value){
|
8172
8001
|
this.setAttribute('rows', value);
|
8002
|
+
},
|
8003
|
+
|
8004
|
+
get defaultValue(){
|
8005
|
+
return this.getAttribute('defaultValue');
|
8006
|
+
},
|
8007
|
+
set defaultValue(value){
|
8008
|
+
this.setAttribute('defaultValue', value);
|
8009
|
+
},
|
8010
|
+
get form(){
|
8011
|
+
var parent = this.parent;
|
8012
|
+
while(parent.nodeName.toLowerCase() != 'form'){
|
8013
|
+
parent = parent.parent;
|
8014
|
+
}
|
8015
|
+
return parent;
|
8016
|
+
},
|
8017
|
+
get accessKey(){
|
8018
|
+
return this.getAttribute('accesskey');
|
8019
|
+
},
|
8020
|
+
set accessKey(value){
|
8021
|
+
this.setAttribute('accesskey',value);
|
8022
|
+
},
|
8023
|
+
get access(){
|
8024
|
+
return this.getAttribute('access');
|
8025
|
+
},
|
8026
|
+
set access(value){
|
8027
|
+
this.setAttribute('access', value);
|
8028
|
+
},
|
8029
|
+
get disabled(){
|
8030
|
+
return (this.getAttribute('disabled')=='disabled');
|
8031
|
+
},
|
8032
|
+
set disabled(value){
|
8033
|
+
this.setAttribute('disabled', (value ? 'disabled' :''));
|
8034
|
+
},
|
8035
|
+
get maxLength(){
|
8036
|
+
return Number(this.getAttribute('maxlength')||'0');
|
8037
|
+
},
|
8038
|
+
set maxLength(value){
|
8039
|
+
this.setAttribute('maxlength', value);
|
8040
|
+
},
|
8041
|
+
get name(){
|
8042
|
+
return this.getAttribute('name')||'';
|
8043
|
+
},
|
8044
|
+
set name(value){
|
8045
|
+
this.setAttribute('name', value);
|
8046
|
+
},
|
8047
|
+
get readOnly(){
|
8048
|
+
return (this.getAttribute('readonly')=='readonly');
|
8049
|
+
},
|
8050
|
+
set readOnly(value){
|
8051
|
+
this.setAttribute('readonly', (value ? 'readonly' :''));
|
8052
|
+
},
|
8053
|
+
/*get tabIndex(){
|
8054
|
+
return Number(this.getAttribute('tabindex'));
|
8055
|
+
},
|
8056
|
+
set tabIndex(value){
|
8057
|
+
this.setAttribute('tabindex',Number(value));
|
8058
|
+
},*/
|
8059
|
+
get type(){
|
8060
|
+
return this.getAttribute('type');
|
8061
|
+
},
|
8062
|
+
set type(value){
|
8063
|
+
this.setAttribute('type',value);
|
8064
|
+
},
|
8065
|
+
get value(){
|
8066
|
+
return this.text;
|
8067
|
+
},
|
8068
|
+
set value(value){
|
8069
|
+
if(this.defaultValue===null&&this.text!==null)
|
8070
|
+
this.defaultValue = this.text;
|
8071
|
+
return this.text = value;
|
8072
|
+
},
|
8073
|
+
blur:function(){
|
8074
|
+
__blur__(this);
|
8075
|
+
|
8076
|
+
if (this._oldValue != this.value){
|
8077
|
+
var event = document.createEvent();
|
8078
|
+
event.initEvent("change");
|
8079
|
+
this.dispatchEvent( event );
|
8080
|
+
}
|
8081
|
+
},
|
8082
|
+
focus:function(){
|
8083
|
+
__focus__(this);
|
8084
|
+
this._oldValue = this.value;
|
8085
|
+
},
|
8086
|
+
select:function(){
|
8087
|
+
__select__(this);
|
8088
|
+
|
8089
|
+
},
|
8090
|
+
click:function(){
|
8091
|
+
__click__(this);
|
8092
|
+
|
8093
|
+
},
|
8094
|
+
onchange: function(event){
|
8095
|
+
__eval__(this.getAttribute('onchange')||'', this)
|
8173
8096
|
}
|
8174
8097
|
});
|
8175
8098
|
|
@@ -8849,29 +8772,12 @@ $debug("Initializing Window Location.");
|
|
8849
8772
|
var $location = '';
|
8850
8773
|
|
8851
8774
|
$w.__defineSetter__("location", function(url){
|
8852
|
-
|
8853
|
-
|
8854
|
-
|
8855
|
-
|
8856
|
-
"'window.open()' to get a new context.");
|
8857
|
-
$w.$haveCalledWindowLocationSetter = true;
|
8858
|
-
$w.__loadAWindowsDocument__(url);
|
8859
|
-
}
|
8860
|
-
else {
|
8861
|
-
$env.$unloadEventsFor($w);
|
8862
|
-
var proxy = $w;
|
8863
|
-
if (proxy.$thisWindowsProxyObject)
|
8864
|
-
proxy = proxy.$thisWindowsProxyObject;
|
8865
|
-
$env.reloadAWindowProxy(proxy, url);
|
8866
|
-
}
|
8775
|
+
//$w.onunload();
|
8776
|
+
$location = $env.location(url);
|
8777
|
+
setHistory($location);
|
8778
|
+
$w.document.load($location);
|
8867
8779
|
});
|
8868
8780
|
|
8869
|
-
$w.__loadAWindowsDocument__ = function(url){
|
8870
|
-
$location = $env.location(url);
|
8871
|
-
setHistory($location);
|
8872
|
-
$w.document.load($location);
|
8873
|
-
};
|
8874
|
-
|
8875
8781
|
$w.__defineGetter__("location", function(url){
|
8876
8782
|
var hash = new RegExp('(\\#.*)'),
|
8877
8783
|
hostname = new RegExp('\/\/([^\:\/]+)'),
|
@@ -8949,18 +8855,13 @@ $w.__defineGetter__("location", function(url){
|
|
8949
8855
|
toString: function(){
|
8950
8856
|
return this.href;
|
8951
8857
|
},
|
8952
|
-
|
8953
|
-
|
8954
|
-
|
8955
|
-
|
8956
|
-
|
8957
|
-
|
8958
|
-
|
8959
|
-
replace: function(url){
|
8960
|
-
$location = url;
|
8961
|
-
$w.location.reload();
|
8962
|
-
}
|
8963
|
-
};
|
8858
|
+
reload: function(force){
|
8859
|
+
//TODO
|
8860
|
+
},
|
8861
|
+
replace: function(url){
|
8862
|
+
//TODO
|
8863
|
+
}
|
8864
|
+
};
|
8964
8865
|
});
|
8965
8866
|
|
8966
8867
|
/*
|
@@ -9162,10 +9063,7 @@ $w.dispatchEvent = function(event, bubbles){
|
|
9162
9063
|
event.target = this;
|
9163
9064
|
}
|
9164
9065
|
$debug("event target: " + event.target);
|
9165
|
-
if ( event.type &&
|
9166
|
-
this === window ||
|
9167
|
-
this.__proto__ === window ||
|
9168
|
-
this.$thisWindowsProxyObject === window)) {
|
9066
|
+
if ( event.type && this.nodeType || this===window) {
|
9169
9067
|
$debug("nodeType: " + this.nodeType);
|
9170
9068
|
if ( this.uuid && $events[this.uuid][event.type] ) {
|
9171
9069
|
var _this = this;
|
@@ -9226,7 +9124,6 @@ $debug("Initializing Window XMLHttpRequest.");
|
|
9226
9124
|
$w.XMLHttpRequest = function(){
|
9227
9125
|
this.headers = {};
|
9228
9126
|
this.responseHeaders = {};
|
9229
|
-
this.$continueProcessing = true;
|
9230
9127
|
$debug("creating xhr");
|
9231
9128
|
};
|
9232
9129
|
|
@@ -9247,41 +9144,36 @@ XMLHttpRequest.prototype = {
|
|
9247
9144
|
var _this = this;
|
9248
9145
|
|
9249
9146
|
function makeRequest(){
|
9250
|
-
|
9251
|
-
|
9252
|
-
|
9253
|
-
|
9254
|
-
|
9255
|
-
|
9256
|
-
|
9257
|
-
|
9258
|
-
|
9259
|
-
|
9260
|
-
|
9261
|
-
|
9262
|
-
|
9263
|
-
|
9264
|
-
|
9265
|
-
|
9266
|
-
|
9267
|
-
return responseXML;
|
9268
|
-
}
|
9147
|
+
$env.connection(_this, function(){
|
9148
|
+
var responseXML = null;
|
9149
|
+
_this.__defineGetter__("responseXML", function(){
|
9150
|
+
if ( _this.responseText.match(/^\s*</) ) {
|
9151
|
+
if(responseXML){
|
9152
|
+
return responseXML;
|
9153
|
+
|
9154
|
+
}else{
|
9155
|
+
try {
|
9156
|
+
$debug("parsing response text into xml document");
|
9157
|
+
responseXML = $domparser.parseFromString(_this.responseText+"");
|
9158
|
+
return responseXML;
|
9159
|
+
} catch(e) {
|
9160
|
+
$error('response XML does not apear to be well formed xml', e);
|
9161
|
+
responseXML = $domparser.parseFromString("<html>"+
|
9162
|
+
"<head/><body><p> parse error </p></body></html>");
|
9163
|
+
return responseXML;
|
9269
9164
|
}
|
9270
|
-
|
9271
|
-
|
9272
|
-
|
9273
|
-
|
9274
|
-
}
|
9275
|
-
|
9276
|
-
|
9277
|
-
|
9278
|
-
}
|
9165
|
+
}
|
9166
|
+
}else{
|
9167
|
+
$env.warn('response XML does not apear to be xml');
|
9168
|
+
return null;
|
9169
|
+
}
|
9170
|
+
});
|
9171
|
+
_this.__defineSetter__("responseXML",function(xml){
|
9172
|
+
responseXML = xml;
|
9173
|
+
});
|
9279
9174
|
}, data);
|
9280
|
-
|
9281
|
-
if (_this.$continueProcessing)
|
9282
|
-
_this.onreadystatechange();
|
9175
|
+
_this.onreadystatechange();
|
9283
9176
|
}
|
9284
|
-
|
9285
9177
|
if (this.async){
|
9286
9178
|
$debug("XHR sending asynch;");
|
9287
9179
|
$env.runAsync(makeRequest);
|
@@ -9291,7 +9183,7 @@ XMLHttpRequest.prototype = {
|
|
9291
9183
|
}
|
9292
9184
|
},
|
9293
9185
|
abort: function(){
|
9294
|
-
|
9186
|
+
//TODO
|
9295
9187
|
},
|
9296
9188
|
onreadystatechange: function(){
|
9297
9189
|
//TODO
|
@@ -10060,15 +9952,19 @@ if($env.profile){
|
|
10060
9952
|
*/
|
10061
9953
|
|
10062
9954
|
// read only reference to the Document object
|
10063
|
-
var $document;
|
10064
|
-
{ // a temporary scope, nothing more
|
10065
|
-
var referrer = "";
|
10066
|
-
try {
|
10067
|
-
referrer = $openingWindow.location.href;
|
10068
|
-
} catch (e){ /* or not */ }
|
10069
|
-
$document = new HTMLDocument($implementation, $w, referrer);
|
10070
|
-
}
|
10071
9955
|
|
9956
|
+
$debug("Initializing window.document.");
|
9957
|
+
var $async = false;
|
9958
|
+
__extend__(HTMLDocument.prototype, {
|
9959
|
+
get async(){ return $async;},
|
9960
|
+
set async(async){ $async = async; },
|
9961
|
+
get baseURI(){ return $env.location('./'); },
|
9962
|
+
get URL(){ return $w.location.href; }
|
9963
|
+
});
|
9964
|
+
|
9965
|
+
|
9966
|
+
|
9967
|
+
var $document = new HTMLDocument($implementation, $w);
|
10072
9968
|
$w.__defineGetter__("document", function(){
|
10073
9969
|
return $document;
|
10074
9970
|
});
|
@@ -10213,14 +10109,8 @@ try{
|
|
10213
10109
|
|
10214
10110
|
|
10215
10111
|
// turn "original" JS interpreter global object into the
|
10216
|
-
// "root" window object
|
10217
|
-
Envjs.window(this,
|
10218
|
-
Envjs, // our scope for globals
|
10219
|
-
this, // a root window's parent is itself
|
10220
|
-
null, // "opener" for new window
|
10221
|
-
this, // "top" for new window
|
10222
|
-
true // identify this as the original (not reloadable) win
|
10223
|
-
);
|
10112
|
+
// "root" window object; third param value for new window's "parent"
|
10113
|
+
Envjs.window(this, Envjs, null, this);
|
10224
10114
|
|
10225
10115
|
} catch(e){
|
10226
10116
|
Envjs.error("ERROR LOADING ENV : " + e + "\nLINE SOURCE:\n" +
|