我们来模仿一下最OO的mootools的继承机制。它的类都有一个叫做initialize构造方法,这与Java的类都有一个与类名同名的构造方法一样的道理。只不过,这些叫initialize或init都是借鉴自Prototype,而Prototype那帮人是Ruby出身。为了区别mootools那种污染原生方法的做法,我把类的构造器命名为variant,并且禁止查看构造方法(像浏览器禁止查看原生对象的构造方法那样)。
var variant = function (options){
options = options || {};
var initialize = options.initialize || function(){};
var klass = initialize ;
klass.constructor = arguments.callee;
klass.prototype.constructor = klass;
klass.toString = function(){//禁止查看构造方法
return "function variant(){\n [variant code]\n}"
}
& ......
在ruby中我们可以通过"*"操作符去字符串进行倍增,如"ruby"*2则返回"rubyruby"。在javascript中,字符串只能用加号,嘛,乘法也加法演变过来的。我们可以搞一个试试。
方法一
String.prototype.times = function(n) {//IE6 530-640 FF3 400~550 IE8 840 ~1110 chrome 600~1000
return (new Array(n+1)).join(this);
};
<!doctype html>
<html dir="ltr" lang="zh-CN">
<head>
<meta charset="utf-8"/>
<title>字符串的乘法</title>
<script type="text/javascript" charset="utf-8">
window.onload = function(){
String.prototype.times = function(n) {
return (new Array(n+1)).join(this);
};
var s = "司徒正美"
var start = new Date();
a = s.times(1000000);
var end = new Date();
alert("所耗时间 ......
本示例是要实现用javascript脚本读取xml文档,在xml文档中实现约束功能,test.html文件代码如下:
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
<script type="text/javascript">
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); //创建xml文档对象;
xmlDoc.validateOnParse="true"; //开启校验功能;
xmlDoc.async="false";   ......
1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)> <td>no </table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复制
3. onpaste="return false" 不准粘贴
4. oncopy="return false;" oncut="return false;" 防止复制
5. <link rel="Shortcut Icon" href="favicon.ico"> IE地址栏前换成自己的图标
6. <link rel="Bookmark" href="favicon.ico"> 可以在收藏夹中显示出你的图标
7. <input style="ime-mode:disabled"> 关闭输入法
8. 永远都会带着框架
<script language="JavaScript"> <!--
if (window == top)top.location.href = "frames.htm"; //frames.htm为框架网页
// --> </script>
9. 防止被人frame
<SCRIPT LANGUAGE=JAVASCRIPT> <!--
if (top.location != self.location)top.location=self.location;
// --> </SCRIPT>
10. 网页将不能被另存为
<noscript> <*** src="/*.html>"; </***> </noscript>
11. <input type= ......
<HTML>
<HEAD><TITLE>WMI Scripting HTML</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<SCRIPT language=JScript event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for=foo>
document.forms[0].txtMACAddr.value = unescape(MACAddr);
document.forms[0].txtIPAddr.value = unescape(IPAddr);
document.forms[0].txtDNSName.value = unescape(sDNSName);
//document.formbar.submit();
</SCRIPT>
<SCRIPT language=JScript event=OnObjectReady(objObject,objAsyncContext) for=foo>
if (objObject. ......
IE7不经提示关闭浏览器窗口
<a href="javascript:window.open('','_top'); window.top.close();">Close IE7</a>
----------------------------
用window.open方法打开新窗口显示提示信息
有时候我们需要打开一个新窗口用来显示提示信息
这个自然会想到用window.open()方法
但新窗体的内容并不是固定的
如果我们建立一个 tip.html 的静态页面,专门用来让window.open打开,打开之后再用js设置窗体的内容
这样做也能满足要求,但是有没有更好的方法呢?
下面的方法可以不用建一个专门的静态页面,而是每次都是打开一个临时窗口,窗体的内容也是动态构造的
请看代码:
<input type=button value=open onclick="openWindow=window.open();
openWindow.document.writeln('<html>');
openWindow.document.writeln('<TITLE>Open Test</TITLE>');
openWindow.document.writeln('<BODY>');
openWindow.document.writeln('<center>');
openWindow.documen ......