sxmsxm.html 代码如下: function sonfun() { alert('ok'); } main.html 代码如下: 在main.html中执行 sxmsxm.html中的sonfun() 有两种方式 1、 sxm.sonfun() 2、document.getElementById("sxm").contentWindow.sonfun();JavaScript教程/参考手册 JavaScript热搜 vue2.0 移动端实现下拉刷新和上拉加载更多的示例解决vue-router中的query动态传参问题解决使用vue.js路由后失效的问题微信小程序实现换肤功能JS中touchs...
代码如下: Each Document (function(){ //创建一个自执行函数 function _$(el){ //声明一个类 this.elements = []; //用于保存DOM元素的引用 for (var i = 0; i var element = el[i]; if (typeof element == string ) { element = document.getElementById(element); } this.elements.push(element); } } _$.prototype = { each: function(fn){ for (var i = 0; i fn.call(this, this.elements[i]); //第二个参数是fn函数的参数...
原始代码:(在ie中正常,火狐中根本不运行window.parent这一步) 代码如下: function oa_tool1(){ window.parent.mm.rows="20,200,10,*"; } 修改代码:(在ie和火狐当中均正常) 代码如下: function oa_tool1(){ window.parent.document.getElementById("mm").rows="20,200,10,*"; } 原因: 从原则上来讲,修改后的代码是正确的代码,原始代码是一种错误代码,只不过因为ie的容错能力强,所以不会出错。 防治: 我们在写代...
传递回调 我们首先要考虑的一个问题是,如何传递回调入口。在最传统的XHR调用当中,回调函数会被作为最后一个参数传递给异步函数: 代码如下:function asyncOperation(argument, callback) 在参数相当多的时候,我们可以把参数放到一个JSON里面,这样参数就如同具名参数一样,可以通过参数名选择性的传递参数,不传递的参数相当于使用默认值。这是从Prototype开始就流行起来的做法: 代码如下:function asyncOperation(argument,...
问题 在Ajax应用中,调用XMLHttpRequest是很常见的情况。特别是以客户端为中心的Ajax应用,各种需要从服务器端获取数据的操作都通过XHR异步调用完成。然而在单线程的JavaScript编程中,XHR异步调用的代码风格实在是与一般的JavaScript代码格格不入。 额外参数 考虑一个除法函数,如果它是纯客户端的同步函数,那么签名会是这样的: function divide(operand1, operand2) 然而假设我们对客户端除法的精度不满意,于是把除法转移到服...
调用入口 链式调用存在Async.go方法和Async.chain方法两个入口,这两个入口本质上是一致的,只是Async.chain方法在调用时先不提供初始参数,而Async.go方法在调用时提供了初始参数并启动异步调用链。 代码如下: Async.chain = function() { var chain = new Async.Operation({ chain: true }); return chain; }; Async.go = function(initialArgument) { return Async.chain().go(initialArgument); } 在这里我们可以看到,链式调...
现实开发中,要按顺序执行一系列的同步异步操作又是很常见的。还是用百度Hi网页版中的例子,我们先要异步获取联系人列表,然后再异步获取每一个联系人的具体信息,而且后者是分页获取的,每次请求发送10个联系人的名称然后取回对应的具体信息。这就是多个需要顺序执行的异步请求。 为此,我们需要设计一种新的操作方式来优化代码可读性,让顺序异步操作代码看起来和传统的顺序同步操作代码一样优雅。 传统做法 大多数程序员都能够很...
类结构 首先我们来搭一个架子,把需要用到的似有变量都列出来。我们需要一个数组,来保存回调函数列表;需要一个标志位,来表示异步操作是否已完成;还可以学IAsyncResult,加一个state,允许异步操作的实现者对外暴露自定义的执行状态;最后加一个变量保存异步操作结果。 代码如下: Async = { Operation: { var callbackQueue = []; this.result = undefined; this.state = "waiting"; this.completed = false; } } addCallback...
解决思路:修改样式表里z-index的值 解决办法: 代码如下:beforeShow: function (i,e) { var z = jQuery(i).closest(".ui-dialog").css("z-index") + 4; e.dpDiv.css(z-index, z); }
封装Ajax 设计Async.Operation的最初目的就是解决Ajax调用需要传递callback参数的问题,为此我们先把Ajax请求封装为Async.Operation。我在这里使用的是jQuery,当然无论你用什么基础库,在使用Async.Operation时都可以做这种简单的封装。 代码如下: var Ajax = {}; Ajax.get = function(url, data) { var operation = new Async.Operation(); $.get(url, data, function(result) { operation.yield(result); }, "json"); return o...
代码如下: Async = {}; Async.Operation = function(options) { options = options || {}; var callbackQueue = []; var chain = (options.chain && options.chain === true) ? true : false; var started = false; var innerChain = null; this.result = undefined; this.state = "running"; this.completed = false; this.yield = function(result) { var self = this; if (!chain) { self.result = result; self.state = "compl...
代码如下: function SpecialArray(arr){ this.arr=arr; } SpecialArray.prototype.map=function(func){ for(var i=0,len=this.arr.length;ithis.arr[i]=func(this.arr[i]); //调用函数,改变arr数组的每个项的值 } return this; //返回自身对象 } var obj=new SpecialArray([ a , b , c ]); //可以对obj的arr属性做任何的操作 alert(obj.map(function(el){return el.toUpperCase()}).arr); alert(obj.map(function(el){return el+"...
点击 同是上面的操作在ie6下执行会出问题请求不到ajax数据,但是在ie7和ff下没问题 所以需要修改成 点击 或者 点击 就可以了
JavaScript函数调用规则一 (1)全局函数调用: function makeArray( arg1, arg2 ){ return [this , arg1 , arg2 ]; } 这是一个最常用的定义函数方式。相信学习JavaScript的人对它的调用并不陌生。 调用代码如下: makeArray('one', 'two'); // => [ window, 'one', 'two' ] 这种方式可以说是全局的函数调用。 为什么说是全局的函数? 因为它是全局对象window 的一个方法, 我们可以用如下方法验证: alert( typeof window.methodThat...
JavaScript中的对象有三种 1,内部对象 如Array,Boolean,Data,Math,Number,Object,RegExp,String对象等 这些对象系统给我们提供了各自的属性与方法供调用。 2,基于类的对象 用类的方式实现对象的引用,这些类需要我们自己定义 3,基于原型的对象 提供有关如何使用 JavaScript 基于原型的对象模型的指南,并且提供指向特定信息的链接,这些信息描述基于原型的对象的自定义构造函数和继承。 在我们写js代码的时候,内部对象是...