jspec 2.11.13 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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" +
|