易截截图软件、单文件、免安装、纯绿色、仅160KB

javascript 跨文档调用技术

这是一种很有前途的技术,可惜生不逢时,IE刚打垮网景,火狐又冒出来了。这种技术是我在设计超级数组对象时发现的。由于直接继承原生数组问题多,我只有用Object与Array的原型方法构建一个新类。不用说,效率不太理想。直到我已把超级数组臻至完美的今天,我还在不断寻找新的替代方案,于是我就想到用另一个文档的数组对象来构建。经测试,IE下是完美的。后来我又发现早在2006年全知全能的DE大神早已做了这样的探索,在《How To Subclass The JavaScript Array Object》中应用这种技术,我只不过是重新把它发挖出来而已。但是,以后就没有下文了,DE大神在他的Base2类库构建Array2对象时也没有应用这种技术。不明真相的我一头扎下去,哎呀!DE大神你真坏,有陷阱也不通报声!
下面就拿DE大神的例子改一下,演示究竟出了什么状况?!
window.onload = function(){
//创建一个iframe
var iframe = document.createElement("iframe");
iframe.style.display = "none";
document.body.appendChild(iframe);
// 取得iframe文档的数组对象
frames[frames.length - 1].document.write(
"<script>parent.Array2 = Array;<\/script>");
var a = Array2(1,2,3,4),
b = a.slice(2)
alert(b instanceof Array)//万恶的safari与firefox总是试图把沙箱文档的数组实例转化为本地文档的数组实例
a.push(5);
alert(a instanceof Array)//同上,safari与firefox受影响的方法是所有返回数组的方法……晕
}

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta content="IE=8" http-equiv="X-UA-Compatible"/>
<title>跨文档调用 by 司徒正美 </title>
<script type="text/javascript">
window.onload = function(){
//创建一个iframe
var iframe = document.createElement("iframe");
iframe.style.display = "none";
document.body.appendChild(iframe);
// 取得iframe文档的数组对象
frames[frames.length - 1].document.write(
"<script>parent.Array2 = Array;<\/script>");
var a = Array2(1,2,3,4),
b = a.slice(2


相关文档:

JavaScript精粹读书笔记(9)

第9章  代码风格
计算机程序是人类制造出来的最复杂的事物。程序通常由很多部分组成,表现为函数、语句和表达式,它们必须准确无误地按照顺序排列。最终的结果几乎都和实现它的程序没有什么相似之处。在软件的产品生命周期中,通常它们都会被修改。把一个正确的程序转化为另一个同样正确但风格不同的程序,是一个极具 ......

JAVASCRIPT 教程1 付首昕

JavaScript 是什麽?
  JavaScript 是一种新的描述语言,此一语言可以被箝入 HTML 的文件之中。
透过 JavaScript 可以做到回应使用者的需求事件 (如: form 的输入) 而不用任何的网路
来回传输资料,所以当一位使用者输入一项资料时,它不用经过传给伺服端 (server)
处理,再传回来的过程,而直接可以被客户端 (c ......

JavaScript循序渐进(2)

面向对象的
JavaScript
 
引用(
reference

“引用”是一个指向对象实际位置的指针。这是一个极为强大的特性,但有一个前提:实际的对象肯定不会是引用。字符串永远是字符串,数组永远是数组。不过多个变量却能够指向同一对象。
JavaScript
基于的就是这样一个引用系统。
这门语言通过维护一系 ......

flash与javascript的交互


flash与javascript的交互可能讨论的比较多,今天为大家介绍下如何使用flex与javascript进行交互
一、在JavaScript中调用Flex方法
在Flex中可以用ExternalInterface来调用Flex的方法,途径是
1.通过在Flex应用可调用方法列表中添加指定的公用方法。在Flex应用中通过调用addCallback()可以把一个方法添加到此列表中。addC ......

【转】JavaScript判断浏览器类型及版本

你知道世界上有多少种浏览器吗?除了我们熟知的IE, Firefox, Opera, Safari四大浏览器之外,世界上还有近百种浏览器。
       几天前,浏览器家族有刚诞生了一位小王子,就是Google推出的Chrome浏览器。由于Chrome出生名门,尽管他还是个小家伙,没有人敢小看他。以后,咱们常说浏览器的&ld ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号