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

JavaScript动态添加DOM元素总结

这两天开始写古代地图的GIS网站,说白了就是用古代地图的内容效仿山寨一下谷歌地图。
JS这东西很久没写了,有些概念也很模糊,导致完成分块拖动加载的功能就花了好多时间。
主要问题是出在拖动时对元素内容的动态修改上,总结下。
通过JS脚本动态修改DOM元素内容通常有两种方法:
1. 通过DOM标准接口创建元素
var newNode = document.createElement("div");
mapDiv.insertBefore(newNode, mapDiv.getElementsByTagName("div")[0]); 
2. 通过修改元素的innerHTML属性来改变内容
mapDiv.innerHtml += "<div class='piece' style='top:"+(i*256+parseInt(blockArray[0][0].style.top))+"px; left:"+(parseInt(blockArray[0][0].style.left)-256)+"px; background-image:url(\"assets/full_map/x="+x+"&y="+(y+i>15?y+i-16:y+i)+"&z=4.png\")'></div>";
 
两种方法都可以改变元素的内容,但是略有不同。
修改innerHTML属性的话,系统会对内容进行重构,重新生成DOM元素(新的地址),即使只是在最后追加了一个元素,而DOM API操作则不会。
举个例子,用数组保存DIV1中的所有元素(subDiv1, subDiv2, subDiv3.......)当修改innerHTML追加一个subDivn的时候,追加完的DOM元素与数组中的不再对应了,因为重新绘制了,元素有了新的地址(数组存的仅仅是地址)。而Div1.appendChild(subDivn)之后,数组与内部元素仍然保持对应关系。
速度上来说的话DOM接口的速度会相对较慢,而修改innerHTML或者是write()方法会明显较快。


相关文档:

修复弹出JavaScript对话框时页面背景变白的问题

from http://niunan.javaeye.com/blog/248256
Page.ClientScript.RegisterStartupScript(Page.GetType(),"message", "<mce:script language='javascript' defer>alert('验证码输入错误!');</mce:script>"); ......

asp.net页面中动态地添加javascript脚本

最近的项目开发中 遇到一些需要根据具体情况动态添加javaScript脚本,然后执行脚本 于是收集了一下:
1 在控件的绑定事件中添加脚本 如:在gridview控件的rowdatabind事件中可以实现 指针的选中行不同色显示 可添加脚本
  protected void gvEngineerRepairState_RowDataBound(object sender, GridViewRowEventArgs e ......

添加收藏夹,只运行一次的javascript代码


function get_cookie(Name)
{
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0)
{
    var offset = document.cookie.indexOf(search)
    if (offset != -1)
    {
    &nbs ......

JavaScript设计模式的一种有趣的封装小技巧

      javascript设计模式第一张有一个有趣的实现继承的方法,当然javascript本质上是实现继承,还不是典型意义上的"is-a"的逻辑继承或者说是语义继承。基本的方法就是通过function的prototype属性。
一,很简单的方法
<script type="text/javascript">
<!--
var Anim = function(){ ......

JavaScript获取计算机MAC等硬件信息

(1)下载ClientInfo.dll(在我的资源中可以下载http://download.csdn.net/source/2141582)
(2)使用new ActiveXObject("ClientInfo.HostInfo")调用ActiveX库
(3)GetAdapterMac(0)获取网卡MAC地址
使用示例:
<HTML>
<TITLE>ClientInfoX JavaScript Sample</TITLE>
<HEAD>
<script l ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号