上午看到无忧脚本里一个闭包的小讨论贴,下午就碰到blue来说一个js问题。眼不转头不抬回了句:“代码不全。”结果才发现,是我智商不全。
举个小例子:
<ul>
<li id=”a1″>1</li>
<li id=”a2″>2</li>
<li id=”a3″>3</li>
</ul>
写个代码:
for(var i = 0; i < 4; i++) {
var…
http://hi.baidu.com/ui/scripts/global.js
地址在上面,这里就不贴了,随后讲到哪里的话会贴下片段。可能以后baidu会变更,但也应该很容易找到。
这篇主要是我一时兴起写下的,达人级就不必看了。主要为了加深下印象,另外给公司的前端部门那几位瞅瞅。
—
/* declare namespace */
(function(){
var namespaces = [ "System","BdElement", "BdBrowser", "BdEvent", "BdUtil", "BdAjax","BdString"];
for(var i = 0, j = …
今天blue同学在用js打开新窗口时发现不少问题,研究一个上午基本明白问题所在,遂把它们一一记下。
首先是链接覆盖问题。
问题:倘若页面中有一个链接a,它链接到另外一个新页面,而此时我们对window或者document.body注册鼠标click监听,监听的内容是打开新窗口的广告的话,链接a会失效。
原因:若ie等browser有屏蔽广告的功能,在鼠标点击的时候,同时触发监听事件和链接事件,屏蔽功能启动,将后者屏蔽掉,而广告弹出来,本末倒置。
解决:虽说二者同时发生,但也有先有后。可以使用setTimeout方法对监听事件进行0秒延迟,从而链接a在监听之前发生。若有广告屏蔽,被屏蔽的也是广告,而不是正常链接了。
然后是openDialog问题
问题:ff3中也拥有和ie一样的window.showModalDialog()方法,在低版本的ns内核中可能没有,搜索到可以用openDialog()来模拟,功能一样。然而实际使用中捕获到Security Exception。
原因:经过漫长时间搜索,最终在http://forums.mozillazine.org/viewtopic.php?f=27&t=30337找到方法,提出由于ff默认关闭一些安全操作引起。
解决:和页面中一样,netscape.security.PrivilegeManager.enablePrivilege(“UniversalBrowserWrite”); 先设置这个属性,让客户端允许使用可能不安全的操作。
这和开心网中用ff浏览,通过链接邀请好友的道理是一样的,必须打开剪贴板功能才能使用。

本博客所有文章均采用