IE6.0下广告代码离奇消失之谜
上边代码在IE6.0运行效果:首页打开页面,广告显示一会后自动消失,刷新一下则无此问题。经过多次测试,发现: 1).注释掉最后两句不会有自动消失的问题 2).给div设置背景色后也不会有自动消失的问题 具体原因未知:(
上边代码在IE6.0运行效果:首页打开页面,广告显示一会后自动消失,刷新一下则无此问题。经过多次测试,发现: 1).注释掉最后两句不会有自动消失的问题 2).给div设置背景色后也不会有自动消失的问题 具体原因未知:(
上边代码在IE下能正常运行,但在FF(2.0)下div却无法移动,Google了下,原来在FF下移动元素的位置时,必须带个单位:
上边构造函数和我们常见的构造函数稍有不同:有返回值,这对我们实例化对象有影响吗?测试一下: 结果完全正常,再做个测试: 结果显示"mzwu.com",这就和调用普通函数没区别了。 可以这么理解:当普通函数使用new关键字来实例化时,会有一个this对象被传进函数中,函数内可对这个对象进行处理,此时普通函数也称为构造函数。 构造函数稍做修改: 等效于: 当函数作普通函数使用时,里边的this指的是window对象,当作构造函数用时,表示的是构造函数对象。 原型对象是构造函数特有的吗? 测试一下: 结果:true,这说明任何函数都有原型对象,并非构造函数才有。 附 .《JavaScript权威指南》五版(P157)中说明:构造函数通常没有返回值。它们初始化作为this的值来传递的对象,并且没有返回值。然而,一个构造函数是允许返回一个对象值的,并且,如果它这么做,返回的对象成为new表达式的值。在此情况下,作为this的值的对象会被抛弃。…
我们经常会看到下边两种代码: 代码一: 代码二: 执行结果是一样的,他们有什么不同呢?下边是《JavaScript 权威指南》第五版P935中对于setInterval第一个参数的说明: 周期性地调用的一个函数或者周期性执行的JavaScript代码串。如果这个字符串含有多个语句,那么每个语句之间都用分号分隔开。在IE 4中,这个参数必须是一个字符串,但在此后的版本中就不是这样了。 这就不难解释了:代码一是周期性地调用一个函数,代码二中则是周期性的执行JavaScript代码串(类似于eval那样执行代码串); 上边例子稍做修改: 结果是状态栏中的时间更新一次后就不再更新了,此处执行过程是先执行语句"window.status=new Date()",再将其返回值(new Date()的值)当作JavaScript代码串给setInterval执行。如仍要动态的在状态栏显示当前时间,可修改如下:
比较常见的用于动态导入js的方法有以下两种: 今天做动态导入时发现了问题,t.js内容如下: 调用代码: 脚本出错,提示缺少对象(使用方法二也有同样的问题)。为了说明问题,我们稍做修改,t.js内容如下: 调用代码: 可以看到,是先弹出"index.htm",再弹出"t.js",这说明t.js的导入是在页面脚本执行完后进行的,在执行M()时,M函数还未声明,因而报错。解决方法: 采用上边方法的不足是:当index.htm和t.js不在同一台服务器上时,index.htm脚本执行会出错,提示没有权限。下边代码摘自QQ首页,测试通过: 参考文章 ·《如何让动态插入的javascript脚本代码跑起来》
在Web应用程序中,大部分的客户端操作都是基于对象的操作,要操作对象就必须先获取对象,jQuery(v1.3.2)提供了强大的选择器让我们获取对象。在这边,我人为地将jQuery选择器分为两大部分:选择对象和筛选条件。选择对象表示要获取什么对象,筛选条件是对获取的对象进行筛选,最终留下符合某些特征的对象。 1.选择对象 1).基本 ·* 匹配所有元素。例如:$("*") ·#id 根据给定的ID匹配一个元素。例如:$("#id") ·element 根据给定的元素名匹配所有元素。例如:$("div") ·.class 根据给定的类匹配元素。例如:$(".style1"); ·selector1,selector2,selectorN 将每一个选择器匹配到的元素合并后一起返回。例如:$("#id,div,.style1")…
无论是在写程序还是看API文档,我们要时刻注意区分Dom对象和jQuery包装集。 1.Dom对象 在传统的javascript开发中,我们都是首先获取Dom对象,比如: 我们经常使用 document.getElementById 方法根据id获取单个Dom对象,或者使用 document.getElementsByTagName 方法根据HTML标签名称获取Dom对象集合。 另外在事件函数中,可以通过在方法函数中使用this引用事件触发对象(但是在多播事件函数中IE6存在问题),或者使用event对象的target(FF)或srcElement(IE6)获取到引发事件的Dom对象。 注意我们这里获取到的都是Dom对象,Dom对象也有不同的类型比如input, div, span等。Dom对象只有有限的属性和方法:…
修改:
先不考虑上边代码有无实际意义,假设上边代码存在于某个页上,构造适当的URL我们很容易就能修改m的值,例如: 甚至是修改Alert函数内容: 这无疑会给站点带来一定的风险,下边我们使用(function(){})()语句对上面的代码稍加修改: 这样我们就无法构造URL来修改m的值了,此处的m相当于是C#类中的私有成员,我们无法访问到它,同样,我们也无法修改Alert函数的内容,除非重写(function(){})()语句,但这似乎没什么意义了。
使用dom-drag.js来拖动页面上的元素非常简单,只需一条语句即可完成: 此外,必须保证元素的position属性值为absolute或relative。看下边例子: 下载dom-drag.js:点击下载 更多关于dom-drag.js的例子:http://www.dynamicdrive.com/dynamicindex11/domdrag/