JavaScript很常用,但也因为其不兼容性很令人头疼。一个另类的解
决方法就是,将其他语言编译为JavaScript。本文列举了GWT、Smalltalk、Python等语言将JavaScript做为编译目标的情
况。
搞过Web开发的都或多或少摸过JavaScript,而尽管Javascript无处不在,但还是很难让人喜欢它。在类似
Google V8、Apple/WebKit的Nitro/SquirrelFish
Extreme和Firefox的TraceMonkey这样的VM出现之前,Javascript的性能并不理想。多个浏览器间互不兼容的实现也
让开发十分痛苦
。jQuery和其他一些类库提供了方便好用的抽象,可以用同一种API进行编程,甚至消除不兼容性。
另一种解决方法:编译为JavaScript
解决该问题的另一种方法是彻底隐藏Javascript,将其作为编译目标。Google的GWT就是一个很成熟的例子,它接受Java代码(用
Java API的一个子集写的),并将它编译为针对浏览器的Javascript。现实中GWT的真实案例之一就是Google
Wave客户端。最近,一些其他语言的实现也加入了这一行列。
Avi Bryant,Smalltalk Seaside
Web框架的作者,开发了Clamato,这是一种能编译为常见Javascript的Smalltalk方言。Avi在FutureRuby时
InfoQ对他的采访中描述了Clamato的设计原则。 ......
getAttribute()方法
●一份文档就是一棵节点树。
●节点分为不同的类型:元素节点、属性节点和文本节点等。
●getElementById()方法将返回一个对象,该对象对应着文档里的一个特定的元素节点。
●getElementsByTagName()方法将返回一个对象数组,它们分别对应着文档里的一个特定的元素节点。
●这些节点中的每个都是一个对象。
接下来,我们将向大家介绍几个与这些对象相关联的属性和方法。
3.4.1 getAttribute()方法
至此,我们已经向大家介绍了两种检索特定元素节点的办法:一种是使用getElementById()方法,另一种是使用getElementsByTagName()方法。在找到那个元素后,我们就可以利用getAttribute()方法把它的各种属性的值查询出来。
getAttribute()方法是一个函数。它只有一个参数——你打算查询的属性的名字:
object.getAttribute(attribute)
不过,getAttribute()方法不能通过document对象调用,这与我们此前介绍过的其他方法不同。我们只能通过一个元素节点对象调用它。
例如,你可以把它与getElementsByTagName()方法结合起来,去查询每个<p>元素的title属性,如下所示:
va ......
最近做的项目中有个要求,需要将数据导出到Excel中,关于这个就不是什么问题,网上的资料很多。可当Table中有Input(text)之类的元素是怎么办?
做法:
修改Input的outerHTML;
具体例子:
function resetInput()
{
var controls = document.getElementsByTagName('input');
for(var i=0; i<controls.length; i++){
if(controls[i].type=='text')
{
if(controls[i].value =="")
{
& ......
最近写东西的时候发现需要对浏览器的关闭进行监听,当用户关闭的时候需要调用session.invalid();清空session信息,但是仔细一查手册发现无论是body还是window都没有onclose事件,之后onload,onunload,beforeunload三个事件
然而三个时间无论是哪个都无法单独解决单独监听浏览器关闭的事件,因为在浏览器正常运行时先加载的是beforeunload->onunload->onload 但是麻烦的是如果刷新页面时是执行beforeunload->onunload,如果关闭浏览器的话是执行onunload.如果单单监听onunload的话是无法区别用户是刷新还是关闭窗口的.所以就要用beforeunload来监测了
window.onbeforeunload=onclose;
function onclose()
{
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)
{
removeSession();//这里添加具体的处理方案
}
}
经过测试,IE7浏览器可以监测监听到 alt+f4 或者单击右上角小叉子退出,但是对于多选项卡浏览的用户貌似无法监听到这点比较可惜~
上天保佑我离数+电工过关吧 阿门! ......
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=butt ......
函数是进行模块化程序设计的基础,编写复杂的Ajax应用程序,必须对函数有更深入的了解。JavaScript中的函数不同于其他的语言,每个函数都是
作为一个对象被维护和运行的。通过函数对象的性质,可以很方便的将一个函数赋值给一个变量或者将函数作为参数传递。在继续讲述之前,先看一下函数的使用语
法:
function func1(…){…}
var func2=function(…){…};
var func3=function func4(…){…};
var func5=new Function();
这些都是声明函数的正确语法。它们和其他语言中常见的函数或之前介绍的函数定义方式有着很大的区别。那么在JavaScript中为什么能这么写?它所遵循的语法是什么呢?下面将介绍这些内容。
认识函数对象(Function Object)
可以用function关键字定义一个函数,并为每个函数指定一个函数名,通过函数名来进行调用。在JavaScript解释执行时,函数都是被维护为一个对象,这就是要介绍的函数对象(Function Object)。
函数对象与其他用户所定义的对象有着本质的区别,这一类对象被称之为内部对象,例如日期对象(Date)、数组对象(Array)、字符串对象
(String)都属于内部对象。这些内置 ......
函数是进行模块化程序设计的基础,编写复杂的Ajax应用程序,必须对函数有更深入的了解。JavaScript中的函数不同于其他的语言,每个函数都是
作为一个对象被维护和运行的。通过函数对象的性质,可以很方便的将一个函数赋值给一个变量或者将函数作为参数传递。在继续讲述之前,先看一下函数的使用语
法:
function func1(…){…}
var func2=function(…){…};
var func3=function func4(…){…};
var func5=new Function();
这些都是声明函数的正确语法。它们和其他语言中常见的函数或之前介绍的函数定义方式有着很大的区别。那么在JavaScript中为什么能这么写?它所遵循的语法是什么呢?下面将介绍这些内容。
认识函数对象(Function Object)
可以用function关键字定义一个函数,并为每个函数指定一个函数名,通过函数名来进行调用。在JavaScript解释执行时,函数都是被维护为一个对象,这就是要介绍的函数对象(Function Object)。
函数对象与其他用户所定义的对象有着本质的区别,这一类对象被称之为内部对象,例如日期对象(Date)、数组对象(Array)、字符串对象
(String)都属于内部对象。这些内置 ......