必威体育下载克里斯蒂安·海尔曼

您当前正在浏览webdevtrick类别的存档。必威体育简介

“webdevtrick”类别的存档

从稀薄的空气中召唤尤伊

星期六,8月2日,二千零八

我爱悠悠装载机因为它是包含悠悠在飞行中。最酷的一点是悠悠组件来自CDN并且知道依赖性,所以我不必这么做。所以如果我需要悠悠为了某事,我不需要额外的脚本维护人员必须包括的节点,只是我的脚本.然而,我们仍然需要的是包括悠悠加载器本身。

除非……你用雅虎_配置侦听器。这东西比两者都老悠悠得到和悠悠是一个对象方法,每次悠悠组件已加载。为什么不加载悠悠装载机使用这个?

一个问题是悠悠加载器不会调用配置侦听器说它是加载器,但是说它是get实用程序。另一个问题是,在加载程序被称为“get”之后立即执行它是不起作用的。解决方法是使用超时。

把所有的东西都包在里面雅虎配置对象,然后您将变戏法悠悠空气稀薄。以下示例加载悠悠Dom悠悠事件和警报“完成”一旦一切就绪。在这里看看


yahoo_config=function()
var s=document.createElement(“script”);
s.setattribute('type','text/javascript');
s.setattribute('src','http://yui.yahooapis.com/2.5.2/'+
'build/yuiloader/yuiloader-beta-min.js');
document.getElementsByTagname('head')[0].附件子项;
返回{
监听器:函数(O)
if(o.name==‘get’)
window.settimeout(雅虎配置就绪,1);
}

}
就绪:函数()
var加载器=新雅虎.util.yuiloader();
var dependencies=['yahoo'、'dom'、'event'];
加载器。需要(依赖项);
loader.loadOptional=true;
加载器.插入件({)
onSuccess:函数()
console.log(“完成!”);
}

(});
}

};
}();

多亏了刘翔的排练技巧。

缺失的本地DOM方法-根据我的课程参与者

星期四,7月31日,二千零八

在课程中,我目前正在桑尼维尔讲授DOM我问参加者,在本地似乎缺少哪些方法。DOM这就是我们提出的:

  • 创建链接(URL,文本)–一种创建链接的快捷方法,其中包含一个文本节点–在创建接口时,您经常需要做的事情
  • 插入后(newnode、oldnode)有一个插入之前,但没有插入器
  • 删除模式(节点)-本地人搬迁儿童卷曲
  • textElement(元素名称,文本)–似乎没有必要创建元素,然后创建一个文本节点并应用它,这可能是一步
  • AdScript(URL)–懒惰地加载javascripts
  • normalizenode(节点)–消除干扰下一步先辈同胞
  • 获取文本(节点)–检索文本节点或元素节点的文本内容
  • settext(节点,文本)–无论节点类型如何设置文本

我要求参加者每人提出一个方法,并向他们展示,我们得到了:


jukuhelpers=function()
函数createLink(url,text,cssclass)
var link=document.createElement('a');
if(typeof url='string')
link.setattribute('href',URL);
}

if(typeof text='string')
link.appendChild(document.createTextNode(text));
}

if(typeof cssclass='string')
link.classname=cssclass;
}

返回链路;
}

函数插入后(newnode,oldnode)
旧节点.nextisbling
?oldnode.parentnode.insertbefore(newnode,oldnode.nextisbling)
:oldnode.parentnode.appendchild(newnode);
}

函数removenode(node)
如果(节点){
node.parentnode.removechild(节点);
}

}
函数textfelement(elementname,text)
if(typeof text='string')
var txtelement=document.createElement(元素名称);
var txtnode=document.createTextnode(文本);
txtelement.appendchild(txtnode);
}

返回txtelement;
}

函数addscript(url)
var s=document.createElement(“script”);
s.setattribute('类型','文本/javascript');
s.setattribute('src',URL);
var head=document.getElementsByTagname('head')[0];
头。附属物;
}

函数getText(node)
VAT-TXT;
if(node&&node.nodeType=1)
if(node.hasChildNodes())
txt=node.firstchild.nodeValue;
}

}
if(node&&node.nodeType=3)
txt=node.nodeValue;
}

返回TXT;
}

功能设置文本(节点,文本)
if(node&&node.nodeType=1)
if(node.hasChildNodes())
node.firstchild.nodeValue=文本;
}

否则{
node.appendChild(document.createTextNode(text));
}

}
if(node&&node.nodeType=3)
node.nodeValue=文本;
}

}
函数normalizenode(node)
if(node.hasschildnodes)
var spacetest=/^s+$/;
var children=node.childnodes;
对于(var i=0;children[i];i++)
if(children[i].nodeType==3)
if(spacetest.test(children[i].nodevalue))
children[i].parentnode.removechild(children[i]);
}

}
}

}
}

返回{
createLink:创建链接,
插入后:插入后,
重塑模式:重塑模式,
textfelement:文本元素,
addscript:添加脚本,
获取文本:获取文本,
设置文本:设置文本,
Normalizenode:标准化node
}

}();

你可以得到JukelSelp.Js如果您想自己使用它,请归档。

还有什么遗漏或者有什么问题吗?

Opera Web标准课程是实时的!

星期二,7月8日,二千零八

在过去的几个月里,来自Opera的Chris Mills正忙着召集他身边的许多优秀的Web开发专家(你的很多人真的很喜欢拉皮条),以便在Web上组装最全面和最新的Web标准课程:Opera Web标准课程

几十篇文章,所有获得Creative Commons许可的软件都将用于涵盖Web开发的任务:从理解Web的原理到Ajax交互。在整个过程中,主要关注的是可用性,可访问性和可维护代码的编写。我们故意忽略了浏览器黑客和后向解决方案,并基于渐进增强和不引人注目的javascript.

我真希望我刚开始的时候这个就不在了,这会节省我很多时间去学习坏的实践和不去学习它们(这总是一个痛苦的过必威体育下载程)。

所以,读它,用它来教年轻人标准绝地的方式:Opera Web标准课程

构建简单的Flickr–一步一步

星期一,6月16日,二千零八

当几个人问我怎么做的时候更简单的Flickr界面,我写了一些分步说明,分析问题,然后美国石油学会在他们周围工作。

更简单的Flickr界面

退房如何创建备选Flickr界面–逐步.

这是一个很好的例子美国石油学会可以使开发人员消除您可能不知道的障碍。我希望将来能给你看更多的。

代码示例可用,并通过BSD,因此,请随意重复使用它们。

如何停止事件委托(明显事实12132)

星期一,6月9日,二千零八

这是我今天在办公室里问的一个问题,问这个问题并不羞耻:

我正在使用 事件委托在我的一个产品上,当我点击某个按钮时,我需要阻止身体上的主处理程序开火。我该怎么做?

答案当然是使用stoppropagation()或cancelBubble(),两个都很好地包裹在里面雅虎.util.event.stoppropagation():

HTML







JavaScript:


yahoo.util.event.onContentReady('buttons',function()
雅虎.util.event.on(document.body,'click',函数(e)
VaT=雅虎.util.event.getTarget(e);
告密者

点击的是“+T+”

“”;
(});
雅虎.util.event.on('摘要','单击',函数(e)
告密者

那是第一个按钮

“”;
雅虎.util.event.stopperopagation(e)条;
(});
雅虎.util.event.on('takes2','click',函数(e)
告密者

那是第二个按钮

“”;
(});
函数snitch(msg)
document.getelementbyid('littlesnitch').innerhtml+=msg;
}

(});

在这里试试:用stoppropagation覆盖事件委托