CDATA 内部的所有东西都会被解析器忽略。
假如文本中包含了大量的 "<" 和 "&" 字符 - 就像编程代码中经常出现的情况一样 - 那么这个 XML 元素就可以被定义为一个 CDATA 部分。
CDATA 区段开始于 "<![CDATA[",结束于 "]]>":
<script type="text/javascript">
<![CDATA[
function compare(a,b)
{
if (a < b)
{alert("a小于b");}
else if (a>b)
{alert("a大于b");}
else
{alert("a等于b");}
}
]]>
</script>
在上面的例子中,在 CDATA 区段中的所有东西都会被解析器忽略。
关于 CDATA 区段的注释:
CDATA 区段不能包含字符串 "]]>",所以,CDATA 区段的嵌套是不被允许的。
同时也需要确保在 "]]>" 字符串中没有空格或折行。
为什么要使用CDATA:
XHTML的第二个改变是使用CDATA段。XML中的CDATA段用于声明不应被解析为标签的文本(XHTML也是如此),这样就可以使用特殊字符,如小于(<)、大于(>)、和号(&)和双引号("),而不必使用它们的字符实体。考虑下面的代码:
<script type="text/javascript">
f ......
这两天开始写古代地图的GIS网站,说白了就是用古代地图的内容效仿山寨一下谷歌地图。
JS这东西很久没写了,有些概念也很模糊,导致完成分块拖动加载的功能就花了好多时间。
主要问题是出在拖动时对元素内容的动态修改上,总结下。
通过JS脚本动态修改DOM元素内容通常有两种方法:
1. 通过DOM标准接口创建元素
var newNode = document.createElement("div");
mapDiv.insertBefore(newNode, mapDiv.getElementsByTagName("div")[0]);
2. 通过修改元素的innerHTML属性来改变内容
mapDiv.innerHtml += "<div class='piece' style='top:"+(i*256+parseInt(blockArray[0][0].style.top))+"px; left:"+(parseInt(blockArray[0][0].style.left)-256)+"px; background-image:url(\"assets/full_map/x="+x+"&y="+(y+i>15?y+i-16:y+i)+"&z=4.png\")'></div>";
两种方法都可以改变元素的内容,但是略有不同。
修改innerHTML属性的话,系统会对内容进行重构,重新生成DOM元素(新的地址),即使只是在最后追加了一个元素,而DOM API操作则不会。
举个例子,用数组保存DIV1中的所有元素(subDiv1, subDiv2, subDiv3.......)当修改innerH ......
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. < ......
//各种尺寸
s += "\r\n网页可见区域宽:"+ document.body.clientWidth;
s += "\r\n网页可见区域高:"+ document.body.clientHeight;
s += "\r\n网页可见区域高:"+ document.body.offsetWeight +" (包括边线的宽)";
s += "\r\n网页可见区域高:"+ document.body.offsetHeight +" (包括边线的宽)";
s += "\r\n网页正文全文宽:"+ document.body.scrollWidth;
s += "\r\n网页正文全文高:"+ document.body.scrollHeight;
s += "\r\n网页被卷去的高:"+ document.body.scrollTop;
s += "\r\n网页被卷去的左:"+ document.body.scrollLeft;
s += "\r\n网页正文部分上:"+ window.screenTop;& ......
// 大学里最痛苦的事情莫过于做毕业设计,目前正处于这个时期。
// :( :(
//
// 首先记录下的是 Function 的一个问题
Function.prototype.method = function( name, func){
if( ! this.prototype[ name]){
this.prototype[ name ] = func;
}
} // 给 函数原型增加方法
//
// 给函数原型增加的方法在 String 中可以调用
String.method( 'trim', function(){
return ( this || '').replace( /^\s*|\s*$/g, '');
})
// 之前一直不理解为什么给 Function 对象的原型增加的方法,可以在 String 和 Array 中获取。
// 现在终于明白了。 说明见下面:
// 1, 在 js 中 函数 是对象( 虽然 typeof 结果为 'function' )。所有函数都是链接到 Function.prototype 的,
// 而 Function.prototype 本身是连接到 Object.prototype 的
// 2, 函数有 4 中声明方式,见 http://blog.csdn.net/phpandjava/archive/2010/03/19/5395528.aspx,
// 其中一种是 var me = new User();在这里 User 是一个函数,只不过调用方式是 Constructor 的方式,
// User 在其他面向对象语言中相当于 class,当然这里也可以理解为 类。这个 User 链接到 Function.prototy ......
Javascript关闭当前窗口2007-09-03 11:11这个太简单了,window.close()就可以了; 不过它会出个提示“您查看的网页正在试图关闭窗口。是否关闭窗口?”,能不能不出这个提示?N年前就有人问过我,那时候我还是菜鸟,不过我的回答还算“专业”。呵呵; “如果你第一次打开这个网页,window.close()就会弹出提示,如果这个网页是由其它的网页window.open()出来的页面,window.close()时,就不会出现提示;还有,当chm帮助文档中的页面,在点击关才,激活window.close()时,也会不出提示。” 上面的回答,是我当时通过测试得出的结果。没有进行过“理论”分析,那个时候,对javascript还仅仅是会用一些简单方法而已。 这个小问题,我也没有当回过事儿,前两天,有朋友问到,我也是这样回答,不过他说,见别人可以的,希望我能帮帮忙,我说,不太可能吧,不过忽然想起,opener语句; window.opener语句,可以返回打开当前页面的那个网页,就是在a.htm中,open()了b.htm页面,那么,在b.htm页面中,window.opener,就会返回a.htm。 如,我在b.html写入 alert(window.opener.location.href); 就会弹出a.htm的完整路径; 那么,当我window.c ......