var iMouseDown = false; var dragObject = null; Number.prototype.NaN0=function(){return isNaN(this)?0:this;} // Demo 0 variables var DragDrops = []; var curTarget = null; var lastTarget = null; function makeDraggable(item){ if(!item) return; item.onmousedown = function(ev){ dragObject = this; mouseOffset = getMouseOffset(this, ev); return false; } } function getMouseOffset(target,...
From: http://www.7419.com/article.asp?id=216 var agt=navigator.userAgent.toLowerCase(); var ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1) && (agt.indexOf("omniweb") == -1)); function a(){ var myArea = document.getElementById("s"); var selection; if (!ie){ if (myArea.selectionStart!= undefined) { selection = myArea.value.substr(myArea.selectionStart, myArea.s...
问题: 如何取到页面中任意某个Html元素与body元素之间的偏移距离? offsetTop和offsetLeft 这两个属性,IE 、Opera和Firefox对它俩的解释存在差异: IE5.0+ 、Opera8.0+: offsetTop和offsetLeft 都是相对父级元素 Firefox1.06: offsetTop和offsetLeft 都是相对于body元素 因此: (1)在FF下直接使用offsetTop和offsetLeft,就可以取到页面中任意某个Html元素与body元素之间的偏移距离; (2)在IE、Opera下则比较麻烦: 需要首...
键盘元素的控制 ns4 = (document.layers)?true:false; ie4 = (document.all)?true:false; function init(){ if(ns4){block = document.blockDiv;} if(ie4){block = blockDiv.style;} block.xpos = parseInt(block.left); block.active = false; document.onkeydown = keyDown; document.onkeyup = keyUp; if(ns4){document.captureEvents(Event.KEYDOWN | Event.KEYUP);} } function keyDown(e){ if(ns4){var nkey=e.which;var iek...
(一) ie 、firefox以及其它浏览器对于 table 标签的操作都各不相同,在ie中不允许对table和tr的innerHTML赋值,使用js增加一个tr时,使用appendChile方法也不管用。下面是我就三种浏览器测试的结果: insertRow IE6 :支持,而且默认参数为-1,默认添加到最后 FireFox :支持,但部支持默认参数 Opera :支持,支持默认参数,默认添加到最前AppendChild IE6 :不支持 FireFox :支持,但增加TR后不影响ROWS Opera :支持,效果同insertRow(-1...
var str = new Array(); 比如有这么一组数组,里面放了20个18位的身份证号码 要判断里面的身份证号码是否有重复 如何快速判断? 代码如下:var ary = new Array("111","22","33","111"); var s = ary.join(",")+","; for(var i=0;i { if(s.replace(ary[i]+",","").indexOf(ary[i]+",")>-1) { alert("有重复!"); } } 代码如下:var ary = new Array("111","22","33","111"); var nary=ary.sort(); for(var i=...
我们知道JScript给我们提供了一个内置的数组对象Array。Array对象除了提供了constructor、length和prototype外,还默认提供了13个方法:concat、join、pop、push、reverse、shift、slice、sort、splice、toLocaleString、toString 、unshift和valueOf,可是没有提供delete方法。 要是熟悉JavaScript的话,会马上说,系统提供了一个delete操作,可以用来删除数组中的元素。对,JS系统里确实有一个delete可以删除数组中的元素。可...
第一个: Untitled Document "; var fileObj = document.createElement(fileTag); span.appendChild(fileObj); fileTag=" "; fileObj = document.createElement(fileTag); span.appendChild(fileObj); } }//if span } // [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 第二个: function delOption(e){ e.previousSibling.value=""; e.previousSibling.removeNode(); e.nextSibling.removeNode(...
在使用脚本统一处理一批页面的时候,我希望通过被处理页面的TITLE元素取到文档的标题和我自定义的一些属性。这些附加的属性是我在服务器端通过Attributes集合添加的,可是运行的结果和我的期望老是相去甚远,怎么我在TITLE元素里写入的自定义属性老是空值呢? 客服端和服务器端代码分别是: ASPX: Query Info C#: protected HtmlGenericControl title; private void Page_Load(object sender, System.EventArgs e) { ...
ASP.NET提供了丰富的数据验证控件,但这个验证功能都必须运用在服务器控件中;在复合验证数据时使用也不是很方便(虽然拖放控件很方便,但拖放数增多和设置相关属性就变得很麻烦的事情)。为了更方便灵活地实现验证功能,于是采用了JQuery编写了一个简单验证组件,在使用时只需要简单的描述一下验证规则,并不需要写一句JavaScript就可以实现具备ASP.NET验证控件的功能(当然页面要引入相关JavaScript文件)。 功能目标 通过...
function addMessage(messageID,userName,userCreateDate,articleCount,subject,body,creationDate,modifiedDate) { var br; var row = document.createElement("tr"); var cell = document.createElement("td"); var cellTr = document.createElement("tr"); var cellTd = document.createElement("td"); cellTd.appendChild(document.createTextNode("用户名:"+userName)); cellTr.appendChild(cellTd); cell.appendChi...
使用attachEvent对同一事件进行多次绑定,这是解决事件函数定义冲突的重要方法。但是在IE中,函数内的this指针并没有指向被绑定元素,而是function对象,在应用中,这是很难受的一件事,如果试图用局部变量传送元素,会因为闭包而引起内存泄漏。那么,我们应该如何解决这一难题呢? 我给Function添加了原型方法“bindNode”,在这个方法里,根据传送过来的元素,进行全局性存储转换,然后返回经过封装的函数,使用call方法来进行...
问题描述: 今天在调试页面的时候遇到一个奇怪的现象,在一个父元素上面定义了一个点击事件,在父元素下面是一个一个的li标签,这上面没有任何点击事件。现象是当点击其中一个li标签时会发生一些动作。这个问题困惑了我好久,我对代码翻了好几遍,最后才确定是,点击子元素时也将会触发父元素的事件。当时我把这种现象是在父元素上定义点击事件时,实际上是在这个区域中都定义了点击事件,所以当点击子元素时,实际上也是在点击父元...
Javascript中input元素的一个普遍规则是,只有用户的操作,才会出发input类的各种元素的对应事件,而是使用javascript的对应方法模拟用户操作,并不会触发相应的事件。 例如对于下面的表单: 当用户调用b0的click()方法来模拟用户单击按钮0时,按钮的onClick事件不会被触发,所以相应事件处理函数也不会被执行。只用用户真正的点击了按钮,事件才会被触发,事件处理函数才会被执行。 另:一组同名input元素的数据被提交到服务器端...
增加子节点或子元素时,首先要创建该元素(元素节点),然后向已经存在的元素节点添加,示例如下:<p id="p1"> <p id="p1">这是一个段落</p> <p id="p2">这是另一个段落</p> </p><script> var para=document.createElement("p");//创建需要增加的元素节点 var node=document.createTextNode("这是新段落。");//创建文本节点 para.appendChild(node);//将文本节点增加至创建的元素中var element=document.getElementById("p1");//获...