evaluator.html
来源:互联网 发布:java好书推荐 编辑:程序博客网 时间:2024/06/05 07:15
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- evaluator.html"
From "JavaScript Bible" 6th Edition by Danny Goodman
http://www.dannyg.com
Copyright 2007 Danny Goodman. All Rights Reserved.
-->
<html id="myHTML">
<head id="myHead">
<title id="myTitle">The Evaluator</title>
<style id="myStyle" disabled="disabled" type="text/css">
#myP {font-weight:bold}
em {color:green}
</style>
<script id="myScript" type="text/javascript">
// global variables to play with
var a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z;
var hasNNSecurity = (typeof netscape != "undefined");
var rng; // W3C DOM Range
function init() {
if (document.createRange) {
rng = document.createRange();
rng.setStartBefore(document.body);
rng.setEndAfter(document.body);
}
}
function doIt(form){
if (form.security.checked && hasNNSecurity) {
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead")
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite")
}
form.output.value = eval(form.input.value)
if (form.security.checked && hasNNSecurity) {
netscape.security.PrivilegeManager.revertPrivilege("UniversalBrowserRead")
netscape.security.PrivilegeManager.revertPrivilege("UniversalBrowserWrite")
netscape.security.PrivilegeManager.revertPrivilege("UniversalXPConnect");
}
if (document.compatMode) {
status = "Mode:" + document.compatMode;
}
}
function sortText(a, b) {
return ((a.name < b.name) ? -1 : 1)
}
function showProps(form) {
var objName = form.inspector.value
var obj = eval(objName)
var msg1 = "PROPERTIES\n", msg2 = "\nMETHODS\n"
var delim = (form.tabbed.checked) ? String.fromCharCode(9) : "="
var data = new Array()
if (form.security.checked && hasNNSecurity) {
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead")
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite")
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
for (var i in obj) {
status = i
// work around bug in IE
switch (i) {
case "domain" :
data[data.length] = {name:(objName + "." + i), value:"unknown", type:"unknown"}
break
case "parentRule" :
data[data.length] = {name:(objName + "." + i), value:"unknown", type:"unknown"}
break
default :
data[data.length] = {name:(objName + "." + i), value:obj[i], type:typeof obj[i]}
}
}
data.sort(sortText)
for (var j=0; j < data.length; j++) {
if (data[j].type == "function") {
if (form.tabbed.checked) {
msg2 += data[j].name + delim + data[j].name + "()\n"
} else {
msg2 += data[j].name + "=function " + data[j].name + "()\n"
}
} else {
if (form.tabbed.checked) {
msg1 += data[j].name + delim + data[j].value + delim + " |" + data[j].type +"|\n"
} else {
msg1 += data[j].name + "=" + data[j].value + " |" + data[j].type +"|\n"
}
}
}
if (form.security.checked && hasNNSecurity) {
netscape.security.PrivilegeManager.revertPrivilege("UniversalBrowserRead")
netscape.security.PrivilegeManager.revertPrivilege("UniversalBrowserWrite")
netscape.security.PrivilegeManager.revertPrivilege("UniversalXPConnect");
}
form.output.value = msg1 + msg2
if (typeof form.output.scrollTop != "undefined") {
form.output.scrollTop = 0;
}
}
function evalIfReady(form, evt) {
evt = (evt) ? evt : (window.event) ? window.event : "";
if (evt) {
var theKey = (evt.which) ? evt.which : evt.keyCode;
if (theKey == 13) {
doIt(form);
return false;
}
}
return true;
}
function showPropsIfReady(form, evt) {
evt = (evt) ? evt : (window.event) ? window.event : "";
if (evt) {
var theKey = (evt.which) ? evt.which : evt.keyCode;
if (theKey == 13) {
showProps(form);
return false;
}
}
return true;
}
function walkChildNodes(objRef, n) {
var obj
if (objRef) {
if (typeof objRef == "string") {
obj = document.getElementById(objRef)
} else {
obj = objRef
}
} else {
obj = (document.body.parentElement) ?
document.body.parentElement : document.body.parentNode
}
var output = ""
var indent = ""
var i, group, txt
if (n) {
for (i = 0; i < n; i++) {
indent += "+---"
}
} else {
n = 0
output += "Child Nodes of <" + obj.tagName
output += ">\n=====================\n"
}
group = obj.childNodes
for (i = 0; i < group.length; i++) {
output += indent
switch (group[i].nodeType) {
case 1:
output += "<" + group[i].tagName
output += (group[i].id) ? " ID=" + group[i].id : ""
output += (group[i].name) ? " NAME=" + group[i].name : ""
output += ">\n"
break
case 3:
txt = group[i].nodeValue.substr(0,15)
output += "[Text:\"" + txt.replace(/[\r\n]/g,"<cr>")
if (group[i].nodeValue.length > 15) {
output += "..."
}
output += "\"]\n"
break
case 8:
output += "[!COMMENT!]\n"
break
default:
output += "[Node Type = " + group[i].nodeType + "]\n"
}
if (group[i].childNodes.length > 0) {
output += walkChildNodes(group[i], n+1)
}
}
return output
}
function walkChildren(objRef, n) {
var obj
if (objRef) {
if (typeof objRef == "string") {
obj = document.getElementById(objRef)
} else {
obj = objRef
}
} else {
obj = document.body.parentElement
}
var output = ""
var indent = ""
var i, group
if (n) {
for (i = 0; i < n; i++) {
indent += "+---"
}
} else {
n = 0
output += "Children of <" + obj.tagName
output += ">\n=====================\n"
}
group = obj.children
for (i = 0; i < group.length; i++) {
output += indent + "<" + group[i].tagName
output += (group[i].id) ? " ID=" + group[i].id : ""
output += (group[i].name) ? " NAME=" + group[i].name : ""
output += ">\n"
if (group[i].children.length > 0) {
output += walkChildren(group[i], n+1)
}
}
return output
}
</script>
</head>
<body bgcolor="white" onload="init()">
<form onsubmit="return false">
<fieldset id="myFIELDSET">
<legend id="myLEGEND">The Evaluator</legend>
<p>Enter an expression to evaluate (<input type="checkbox"
name="security" />Use NN Code Base Security):<br />
<input type="text" name="input" size="80" onkeypress=
"return evalIfReady(this.form, event)" /> <input type=
"button" value="Evaluate" onclick="doIt(this.form)" /></p>
<p>Results: (<input type="checkbox" name="tabbed" checked>Use tab delimiters)<br />
<textarea name="output" cols="80" rows="6" wrap="virtual"></textarea>
</p>
<p>Enter a reference to an object:<br />
<input type="text" name="inspector" size="80" hidefocus="hidefocus"
onkeypress="return showPropsIfReady(this.form, event)" />
<input type="button" value="List Properties" onclick=
"showProps(this.form)" /></p>
</fieldset>
</form><!--
BEGIN SAMPLE HTML ELEMENTS
-->
<p id="myP">Now is the time for <em id="myEM">all</em> good men
to come to the aid of their country.</p>
<table id="myTable" cellpadding="10" border="2">
<caption id="myCap">
This is a table caption.
</caption>
<colgroup id="myCol" span="3"></colgroup>
<thead id="myTHEAD">
<tr>
<th><font id="myFont" size="4">Quantity</font></th>
<th id="myTH">Description</th>
<th>Price</th>
</tr>
</thead>
<tbody bgcolor="salmon" id="myTBODY">
<tr align="center">
<td width="200">4</td>
<td id="myTD" style="filter:blur(add=true, direction=225)">
Primary Widget</td>
<td>$14.96</td>
</tr>
<tr id="myTR">
<td>10</td>
<td style="filter:blur(add=true, direction=225)">Secondary
Widget</td>
<td id="myTD2">$114.96</td>
</tr>
</tbody>
</table>
<form name="myForm2" id="myForm2">
<select id="mySelect" name="aSelect" multiple="multiple" size="4">
<option value="Larry Fine">
Larry
</option>
<option>
Moe
</option>
<option>
Curly
</option>
</select>
<p><input type="checkbox" id="myCheckbox" />Sample Checkbox</p>
<fieldset id="form2set1">
<legend id="form1set1legend">Choose the Desired
Performance</legend> <input type="radio" name="speed" id=
"speed1" /><label for="speed1">Fastest (lower
quality)</label><br />
<input type="radio" name="speed" id="speed2" /><label for=
"speed2">Slower (best quality)</label>
</fieldset>
</form><br />
<div id="myDIV" style=
"position:absolute; top:350; left:550; width:60px; border:5px ridge green; padding:5px; margin:5px">
This is a positioned element with a whole bunch of text in it.
</div>
<p><img name="myIMG" src="desk1.gif" id="myIMG" alt="" /></p>
</body>
</html>
<!-- evaluator.html"
From "JavaScript Bible" 6th Edition by Danny Goodman
http://www.dannyg.com
Copyright 2007 Danny Goodman. All Rights Reserved.
-->
<html id="myHTML">
<head id="myHead">
<title id="myTitle">The Evaluator</title>
<style id="myStyle" disabled="disabled" type="text/css">
#myP {font-weight:bold}
em {color:green}
</style>
<script id="myScript" type="text/javascript">
// global variables to play with
var a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z;
var hasNNSecurity = (typeof netscape != "undefined");
var rng; // W3C DOM Range
function init() {
if (document.createRange) {
rng = document.createRange();
rng.setStartBefore(document.body);
rng.setEndAfter(document.body);
}
}
function doIt(form){
if (form.security.checked && hasNNSecurity) {
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead")
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite")
}
form.output.value = eval(form.input.value)
if (form.security.checked && hasNNSecurity) {
netscape.security.PrivilegeManager.revertPrivilege("UniversalBrowserRead")
netscape.security.PrivilegeManager.revertPrivilege("UniversalBrowserWrite")
netscape.security.PrivilegeManager.revertPrivilege("UniversalXPConnect");
}
if (document.compatMode) {
status = "Mode:" + document.compatMode;
}
}
function sortText(a, b) {
return ((a.name < b.name) ? -1 : 1)
}
function showProps(form) {
var objName = form.inspector.value
var obj = eval(objName)
var msg1 = "PROPERTIES\n", msg2 = "\nMETHODS\n"
var delim = (form.tabbed.checked) ? String.fromCharCode(9) : "="
var data = new Array()
if (form.security.checked && hasNNSecurity) {
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead")
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite")
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
for (var i in obj) {
status = i
// work around bug in IE
switch (i) {
case "domain" :
data[data.length] = {name:(objName + "." + i), value:"unknown", type:"unknown"}
break
case "parentRule" :
data[data.length] = {name:(objName + "." + i), value:"unknown", type:"unknown"}
break
default :
data[data.length] = {name:(objName + "." + i), value:obj[i], type:typeof obj[i]}
}
}
data.sort(sortText)
for (var j=0; j < data.length; j++) {
if (data[j].type == "function") {
if (form.tabbed.checked) {
msg2 += data[j].name + delim + data[j].name + "()\n"
} else {
msg2 += data[j].name + "=function " + data[j].name + "()\n"
}
} else {
if (form.tabbed.checked) {
msg1 += data[j].name + delim + data[j].value + delim + " |" + data[j].type +"|\n"
} else {
msg1 += data[j].name + "=" + data[j].value + " |" + data[j].type +"|\n"
}
}
}
if (form.security.checked && hasNNSecurity) {
netscape.security.PrivilegeManager.revertPrivilege("UniversalBrowserRead")
netscape.security.PrivilegeManager.revertPrivilege("UniversalBrowserWrite")
netscape.security.PrivilegeManager.revertPrivilege("UniversalXPConnect");
}
form.output.value = msg1 + msg2
if (typeof form.output.scrollTop != "undefined") {
form.output.scrollTop = 0;
}
}
function evalIfReady(form, evt) {
evt = (evt) ? evt : (window.event) ? window.event : "";
if (evt) {
var theKey = (evt.which) ? evt.which : evt.keyCode;
if (theKey == 13) {
doIt(form);
return false;
}
}
return true;
}
function showPropsIfReady(form, evt) {
evt = (evt) ? evt : (window.event) ? window.event : "";
if (evt) {
var theKey = (evt.which) ? evt.which : evt.keyCode;
if (theKey == 13) {
showProps(form);
return false;
}
}
return true;
}
function walkChildNodes(objRef, n) {
var obj
if (objRef) {
if (typeof objRef == "string") {
obj = document.getElementById(objRef)
} else {
obj = objRef
}
} else {
obj = (document.body.parentElement) ?
document.body.parentElement : document.body.parentNode
}
var output = ""
var indent = ""
var i, group, txt
if (n) {
for (i = 0; i < n; i++) {
indent += "+---"
}
} else {
n = 0
output += "Child Nodes of <" + obj.tagName
output += ">\n=====================\n"
}
group = obj.childNodes
for (i = 0; i < group.length; i++) {
output += indent
switch (group[i].nodeType) {
case 1:
output += "<" + group[i].tagName
output += (group[i].id) ? " ID=" + group[i].id : ""
output += (group[i].name) ? " NAME=" + group[i].name : ""
output += ">\n"
break
case 3:
txt = group[i].nodeValue.substr(0,15)
output += "[Text:\"" + txt.replace(/[\r\n]/g,"<cr>")
if (group[i].nodeValue.length > 15) {
output += "..."
}
output += "\"]\n"
break
case 8:
output += "[!COMMENT!]\n"
break
default:
output += "[Node Type = " + group[i].nodeType + "]\n"
}
if (group[i].childNodes.length > 0) {
output += walkChildNodes(group[i], n+1)
}
}
return output
}
function walkChildren(objRef, n) {
var obj
if (objRef) {
if (typeof objRef == "string") {
obj = document.getElementById(objRef)
} else {
obj = objRef
}
} else {
obj = document.body.parentElement
}
var output = ""
var indent = ""
var i, group
if (n) {
for (i = 0; i < n; i++) {
indent += "+---"
}
} else {
n = 0
output += "Children of <" + obj.tagName
output += ">\n=====================\n"
}
group = obj.children
for (i = 0; i < group.length; i++) {
output += indent + "<" + group[i].tagName
output += (group[i].id) ? " ID=" + group[i].id : ""
output += (group[i].name) ? " NAME=" + group[i].name : ""
output += ">\n"
if (group[i].children.length > 0) {
output += walkChildren(group[i], n+1)
}
}
return output
}
</script>
</head>
<body bgcolor="white" onload="init()">
<form onsubmit="return false">
<fieldset id="myFIELDSET">
<legend id="myLEGEND">The Evaluator</legend>
<p>Enter an expression to evaluate (<input type="checkbox"
name="security" />Use NN Code Base Security):<br />
<input type="text" name="input" size="80" onkeypress=
"return evalIfReady(this.form, event)" /> <input type=
"button" value="Evaluate" onclick="doIt(this.form)" /></p>
<p>Results: (<input type="checkbox" name="tabbed" checked>Use tab delimiters)<br />
<textarea name="output" cols="80" rows="6" wrap="virtual"></textarea>
</p>
<p>Enter a reference to an object:<br />
<input type="text" name="inspector" size="80" hidefocus="hidefocus"
onkeypress="return showPropsIfReady(this.form, event)" />
<input type="button" value="List Properties" onclick=
"showProps(this.form)" /></p>
</fieldset>
</form><!--
BEGIN SAMPLE HTML ELEMENTS
-->
<p id="myP">Now is the time for <em id="myEM">all</em> good men
to come to the aid of their country.</p>
<table id="myTable" cellpadding="10" border="2">
<caption id="myCap">
This is a table caption.
</caption>
<colgroup id="myCol" span="3"></colgroup>
<thead id="myTHEAD">
<tr>
<th><font id="myFont" size="4">Quantity</font></th>
<th id="myTH">Description</th>
<th>Price</th>
</tr>
</thead>
<tbody bgcolor="salmon" id="myTBODY">
<tr align="center">
<td width="200">4</td>
<td id="myTD" style="filter:blur(add=true, direction=225)">
Primary Widget</td>
<td>$14.96</td>
</tr>
<tr id="myTR">
<td>10</td>
<td style="filter:blur(add=true, direction=225)">Secondary
Widget</td>
<td id="myTD2">$114.96</td>
</tr>
</tbody>
</table>
<form name="myForm2" id="myForm2">
<select id="mySelect" name="aSelect" multiple="multiple" size="4">
<option value="Larry Fine">
Larry
</option>
<option>
Moe
</option>
<option>
Curly
</option>
</select>
<p><input type="checkbox" id="myCheckbox" />Sample Checkbox</p>
<fieldset id="form2set1">
<legend id="form1set1legend">Choose the Desired
Performance</legend> <input type="radio" name="speed" id=
"speed1" /><label for="speed1">Fastest (lower
quality)</label><br />
<input type="radio" name="speed" id="speed2" /><label for=
"speed2">Slower (best quality)</label>
</fieldset>
</form><br />
<div id="myDIV" style=
"position:absolute; top:350; left:550; width:60px; border:5px ridge green; padding:5px; margin:5px">
This is a positioned element with a whole bunch of text in it.
</div>
<p><img name="myIMG" src="desk1.gif" id="myIMG" alt="" /></p>
</body>
</html>
- evaluator.html
- Infix Expression Evaluator
- Postfix Expression Evaluator
- 20100129 Lennart Augustsson_Partial Evaluator
- Toastmaster evaluator 经验
- Runtime C# Expression Evaluator
- An expression evaluator
- android属性动画--Evaluator
- 插值器InterPolator & Evaluator
- NCalc - Mathematical Expressions Evaluator for .NET
- c#解析类 Evaluator 实现动态流程
- EdgeUse 和 Edge的Evaluator 区别
- POJ-3337 Expression Evaluator-表达式求值
- Internal error in the expression evaluator
- STK Component:Evaluator pattern(计算器模式)
- ValueAnimator插值器(Interpolors)和计值器(Evaluator)详解
- Java数学表达式计算(Expression Evaluator)
- c#解析类 Evaluator 实现动态流程之Demo
- Linux系统常用shell命令
- android基础5——使用资源
- linux 用户空间和内核空间数据传递
- python <tab>自动补全
- 最大连续子序列乘积
- evaluator.html
- Linux下svn命令大全
- JDK安装与配置
- Android Io 整理
- Sizeof与Strlen的区别与联系
- 详解sizeof和strlen
- C语言字符数组初始化
- iOS7中UITableView中cell的使用
- sizeof [字节对齐]