??xml version="1.0" encoding="utf-8" standalone="yes"?>国产伦子伦对白在线播放观看,久久影院100000精品,视频在线观看你懂的http://www.aygfsteel.com/paulwong/category/14164.htmlzh-cnSun, 02 Jan 2011 09:42:40 GMTSun, 02 Jan 2011 09:42:40 GMT60javascript 调试工具http://www.aygfsteel.com/paulwong/archive/2011/01/01/342137.htmlpaulwongpaulwongSat, 01 Jan 2011 15:00:00 GMThttp://www.aygfsteel.com/paulwong/archive/2011/01/01/342137.htmlhttp://www.aygfsteel.com/paulwong/comments/342137.htmlhttp://www.aygfsteel.com/paulwong/archive/2011/01/01/342137.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/342137.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/342137.html Microsoft word调试工具Windows Script Debugger下蝲地址Q要看清楚版本哦Q?br /> http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=E606E71F-BA7F-471E-A57D-F2216D81EC3D 
默认情况office是安装好的,视图->工具?>web 工具?>麻花状图?Microsoft Script Editor),如果已经安装好,则会(x)打开Microsoft Script Editor?br /> 当然览器也要设|相应的属性支持js调试Qiternet高选项->高->用脚本调试L?br /> 当我们在前台面写jsӞ一般情况下只要出错则弹试对话框Q但是如果想跟踪变量的话Q只要在js中加"debugger"卛_Q当E序q行到debugger处会(x)自己弹出调试H口Q和Eclipse中用调试java代码一样可以跟t变量,非常方便

paulwong 2011-01-01 23:00 发表评论
]]>
javascript囄览器的核心——图片预加蝲http://www.aygfsteel.com/paulwong/archive/2010/11/13/337993.htmlpaulwongpaulwongSat, 13 Nov 2010 09:24:00 GMThttp://www.aygfsteel.com/paulwong/archive/2010/11/13/337993.htmlhttp://www.aygfsteel.com/paulwong/comments/337993.htmlhttp://www.aygfsteel.com/paulwong/archive/2010/11/13/337993.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/337993.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/337993.html
知道了一张图片的地址Q需要把它在一个固定大的html容器Q可以是div{)里边昄出来Q最重要的当然是需要知道这张即显C的囄的宽和高Q然后再l合容器的宽和高Q按照一定的~放比例使图片显C出来。因此,实现囄预加载就成ؓ(f)囄览器的核心功能了?br />
做过囄{效果的朋友其实都知道Q要让图片轮换的时候不出现{待Q最好是先让囄下蝲到本圎ͼ让浏览器~存h。这Ӟ一般都?x)用到js里边的Image对象。一般的手段无非q样Q?br />
function preLoadImg(url) {
var img = new Image();
img.src 
= url;
}


通过调用preLoadImg函数Q传入图片的urlQ就能囄预先下蝲下来了。实际上Q这里用到的预下载功能也和这基本一致。图片预下蝲下来后,通过 img的width和height属性,p知道囄的宽和高了。但是需要考虑刎ͼ在做囄览器功能时Q图片都是实时显C的。比如你点了昄的按钮,q个时候才?x)调用上边类似的代码来加载图片。因此,如果你直接用img.width的时候,囄q没有完全下载下来。因此,需要用一些异步的Ҏ(gu)Q等到图片下载完毕的时候才?x)再对img的width和heightq行调用?实现q样的异步方法实际上不难Q图片的下蝲完毕事g也很单,是单的onload事g。因此,我们可以写出下面的代码:(x)


function loadImage(url, callback) {
var img = new Image();
img.src 
= url;

img.onload 
= function()//囄下蝲完毕时异步调用callback函数?/span>
callback.call(img); // callback函数this指针切换为img?/span>
}
;
}


好了Q再来写一个测试用例?br />

function imgLoaded(){
alert(
this.width);
}


<input type="button" value="loadImage" onclick="loadImage('aaa.jpg',imgLoaded)"/>

在firefox中测试一下,发现不错Q果然和预想的效果一P在图片下载后Q就?x)弹出图片的宽度来。无论点d次或者刷新结果都一栗?br />
不过Q做到这一步,先别高兴太早——还需要考虑一下浏览器的兼Ҏ(gu),于是Q赶紧到ie里边试一下。没错,同样弹出了图片的宽度。但是,再点击load的时候,情况׃一样了Q什么反应都没有了。刷C下,也同样如此?br />
l过对多个浏览器版本的测试,发现ie6、opera都会(x)q样Q而firefox和safari则表现正常。其实,原因也挺单的Q就是因为浏览器的缓存了。当囄加蝲q一ơ以后,如果再有对该囄的请求时Q由于浏览器已经~存住这张图片了Q不?x)再发v一ơ新的请求,而是直接从缓存中加蝲q来。对?firefox和safariQ它们视图ɘq两U加载方式对用户透明Q同样会(x)引v囄的onload事gQ而ie和opera则忽略了q种同一性,不会(x)引v囄的onload事gQ因此上边的代码在它们里边不能得以实现效果?br />
怎么办呢Q最好的情况是Image可以有一个状态D明它是否已经载入成功了。从~存加蝲的时候,因ؓ(f)不需要等待,q个状态值就直接是表明已l下载了Q而从httph加蝲Ӟ因ؓ(f)需要等待下载,q个值显CZؓ(f)未完成。这L(fng)话,可以搞定了?br />
l过一些分析,l于发现一个ؓ(f)各个览器所兼容的Image的属性——complete。所以,在图片onload事g之前先对q个值做一下判断即可。最后,代码变成如下的样子:(x)


function loadImage(url, callback) {
var img = new Image(); //创徏一个Image对象Q实现图片的预下?/span>
img.src = url;

if (img.complete) // 如果囄已经存在于浏览器~存Q直接调用回调函?/span>
callback.call(img);
return// 直接q回Q不用再处理onload事g
}


img.onload 
= function () //囄下蝲完毕时异步调用callback函数?/span>
callback.call(img);//回调函数的this替换为Image对象
}
;
}
;

l过q么一番折腾,ȝ是让各个览器都能满x们的目标了。虽然代码很单,但是却把囄览器中最核心的问题解x了,接下来你所要做的,仅仅是图片如何呈现的问题了?br />


paulwong 2010-11-13 17:24 发表评论
]]>
Javascript ??扩展String 函数http://www.aygfsteel.com/paulwong/archive/2010/03/25/316491.htmlpaulwongpaulwongWed, 24 Mar 2010 16:38:00 GMThttp://www.aygfsteel.com/paulwong/archive/2010/03/25/316491.htmlhttp://www.aygfsteel.com/paulwong/comments/316491.htmlhttp://www.aygfsteel.com/paulwong/archive/2010/03/25/316491.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/316491.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/316491.html/**
 * @brief  扩展原生字符?nbsp;
 
*/


var StringEx = 

    
/**
     * @brief 去除字符串前后空?br />      
*/

    trim : 
function()
    
{
        
return this.replace(/(^\s*)|(\s*$)/g, "");
    }
,
    
    
/**
     * @brief 去除左边I格
     
*/

    ltrim : 
function()
    

        
return this.replace(/(^\s*)/g, ""); 
    }
,
    
    
/**
     * @brief 去除双I格
     
*/

    rtrim : 
function()
    

        
return this.replace(/(\s*$)/g, "");      
    }
,
    
    
/**
     * @brief 避免XSS d
     
*/

    avoidXSS : 
function()
    
{
        
var strTemp = this.replace(/&/g, "&amp;");
        strTemp 
= strTemp.replace(/</g, "&lt;");
        strTemp 
= strTemp.replace(/>/g, "&gt;");
        strTemp 
= strTemp.replace(/\"/g, "&quot;");
        return strTemp;    
    } ,
    
    /**
     * @brief 获取字符串的字节长度 汉字默认双字?br />      */
    byteLength : function()
    {
          return this.replace(/[^\x00-\xff]/g,
"**").length;
    },
    
    /**
     * @brief     除去HTML标签
     * @example    <div id=
"test1">aaaa</div>  =>  aaaa 
     */
    removeHTML : function()
    {
        return this.replace(/<\/?[^>]+>/gi, '');
    },
    
    /**
     * @brief      格式化字W串
     * @example 
"<div>{0}</div>{1}".format(txt0,txt1)
     */
    format : function()
    {
        var args = [];
        
        for (var i = 0, il = arguments.length; i < il; i++)
        {
            args.push(arguments[i]);
        }
        
        return this.replace(/\{(\d+)\}/g, function(m, i)
        {
            return args[i];
        });
    },
    
    /**
     * @brief 字符串{数字
     */
    toInt : function() 
    {
        return Math.floor(this);
    }    
}


for (var it in StringEx) 
{
    String.prototype[it] = StringEx[it];
}


test:


    var strTest = "   -{0}q里是扩展原生字W串test{1}- ";
            
            alert(strTest.length);                 
// output : 26
            alert(strTest.ltrim().length);      // 23
            alert(strTest.rtrim().length);      // 25
            
            alert(strTest.byteLength());        
// 36
            
            alert(strTest.format(
"abc","def")); //   -abcq里是扩展原生字W串testdef- 
            
            
var strNumber = "89989";
            
            alert(
typeof strNumber.toInt());    // number
            
            
var domTest = document.getElementById("test1").outerHTML;
            
            alert(domTest);
            
            alert(domTest.avoidXSS());
            alert(domTest.removeHTML());


下蝲 string.js ? demo 


paulwong 2010-03-25 00:38 发表评论
]]>
可变列宽的表?/title><link>http://www.aygfsteel.com/paulwong/archive/2006/11/24/83291.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Fri, 24 Nov 2006 08:05:00 GMT</pubDate><guid>http://www.aygfsteel.com/paulwong/archive/2006/11/24/83291.html</guid><wfw:comment>http://www.aygfsteel.com/paulwong/comments/83291.html</wfw:comment><comments>http://www.aygfsteel.com/paulwong/archive/2006/11/24/83291.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/paulwong/comments/commentRss/83291.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/paulwong/services/trackbacks/83291.html</trackback:ping><description><![CDATA[     摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> /*  表格  */ .ResizedColTable {     border-bottom : ...  <a href='http://www.aygfsteel.com/paulwong/archive/2006/11/24/83291.html'>阅读全文</a><img src ="http://www.aygfsteel.com/paulwong/aggbug/83291.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/paulwong/" target="_blank">paulwong</a> 2006-11-24 16:05 <a href="http://www.aygfsteel.com/paulwong/archive/2006/11/24/83291.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>showModalDialog和showModelessDialoghttp://www.aygfsteel.com/paulwong/archive/2006/08/16/63893.htmlpaulwongpaulwongWed, 16 Aug 2006 06:02:00 GMThttp://www.aygfsteel.com/paulwong/archive/2006/08/16/63893.htmlhttp://www.aygfsteel.com/paulwong/comments/63893.htmlhttp://www.aygfsteel.com/paulwong/archive/2006/08/16/63893.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/63893.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/63893.html

  showModalDialogQ被打开后就?x)始l保持输入焦炏V除非对话框被关闭,否则用户无法切换CH口。类似alert的运行效果?br />   showModelessDialogQ被打开后,用户可以随机切换输入焦点。对ȝ口没有Q何媄?最多是被挡住一下而以?P)



二、怎样才让在showModalDialog和showModelessDialog的超q接不弹出新H口Q?br />

  在被打开的网里加上<base target="_self">可以了。这句话一般是攑֜<html>?lt;body>之间的?br />
三、怎样才刷新showModalDialog和showModelessDialog里的内容Q?br />

  在showModalDialog和showModelessDialog里是不能按F5h的,又不能弹单。这个只能依靠javascript了,以下是相关代码:(x)


<body onkeydown="if (event.keyCode==116){reload.click()}">
<a id="reload" href="filename.htm" style="display:none">reload</a>


  filename.htm替换成网늚名字然后它攑ֈ你打开的网里Q按F5可以刷CQ注意,q个要配?div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><base target="_self">
使用Q不然你按下F5?x)弹出新H口的?br />
四、如何用javascriptxshowModalDialog(或showModelessDialog)打开的窗口?br />
<input type="button" value="关闭" onclick="window.close()">

  也要配合<base target="_self">Q不然会(x)打开一个新的IEH口Q然后再x的?br />
五、showModalDialog和showModelessDialog数据传递技巧?br />   (作者语Q本来想用一问一{Ş式来写的Q但是我想不个怎么问,所以只好这样了?
  q个东西比较ȝQ我改了好几ơ了不是没办法说明白(语文水^来差?Q只好用个例子说明了?br />   例子Q?br /> 现在需要在一个showModalDialog(或showModelessDialog)里读取或讄一个变量var_name
一般的传递方式:(x)

window.showModalDialog("filename.htm",var_name)//传递var_name变量
在showModalDialog(或showModelessDialog)d和设|时Q?br /> lert(window.dialogArguments)//dvar_name变量
window.dialogArguments="oyiboy"http://讄var_name变量
  q种方式是可以满的Q但是当你想在操作var_name同时再操作第二个变理var_id时呢Q就无法再进行操作了。这是q种传递方式的局限性?br />     
以下是我使用的传递方式:(x)
  //不管要操作什么变量,只直传递主H口的window对象
在showModalDialog(或showModelessDialog)d和设|时Q?br /> alert(window.dialogArguments.var_name)//dvar_name变量
window.dialogArguments.var_name="oyiboy"http://讄var_name变量
 同时我也可以操作var_id变量
 alert(window.dialogArguments.var_id)//dvar_id变量
 window.dialogArguments.var_id="001"http://讄var_id变量

 同样q可以对ȝ口的M对象q行操作Q如form对象里的元素?br />   window.dialogArguments.form1.index1.value="q是在设|index1元素的?

六、多个showModelessDialog的相互操作?br />   因ؓ(f)光说很费Ԍ我就L(fng)懒,直接用代码来说了Q如果不明白的话那就直接来信(oyiboy#163.net(使用时请?Ҏ(gu)@))问我吧?br />
  以下代码的主要作用是在一个showModelessDialog里移动别一个showModelessDialog的位|?br />
  L件的部䆾js代码?br />   var s1=showModelessDialog('控制.htm',window,"dialogTop:1px;dialogLeft:1px") //打开控制H口
  var s2=showModelessDialog('about:blank',window,"dialogTop:200px;dialogLeft:300px")  //打开被控制窗?br />
  控制.htm的部份代码?br />
<script>
    
//操作位置数据Q因为窗口的位置数据?xxxpx"方式的,所以需要这L(fng)一个特D操作函数?/span>
function countNumber(A_strNumber,A_strWhatdo)
{
A_strNumber
=A_strNumber.replace('px','')
A_strNumber
-=0
switch(A_strWhatdo)
{
case "-":A_strNumber-=10;break;
case "+":A_strNumber+=10;break;
}
return A_strNumber + "px"
}
  
</script>


<input type="button" onclick="window.dialogArguments.s2.dialogTop=countNumber(window.dialogArguments.s2.dialogTop,'-')" value="上移">
  
<input type="button" onclick="window.dialogArguments.s2.dialogLeft=countNumber(window.dialogArguments.s2.dialogLeft,'-')" value="左移">
  
<input type="button" onclick="window.dialogArguments.s2.dialogLeft=countNumber(window.dialogArguments.s2.dialogLeft,'+')" value="右移">
  
<input type="button" onclick="window.dialogArguments.s2.dialogTop=countNumber(window.dialogArguments.s2.dialogTop,'+')" value="下移">

  以上关键部䆾是:(x)
H口命名方式Qvar s1=showModelessDialog('控制.htm',window,"dialogTop:1px;dialogLeft:1px")
  变量讉K方式Qwindow.dialogArguments.s2.dialogTop

  q个例子只是现实showModelessDialog与showModelessDialog之间的位|操作功能,通过q个原理Q在showModelessDialog之间怺控制各自的显C页面,传递变量和数据{。这要看各位的发挥了?img src ="http://www.aygfsteel.com/paulwong/aggbug/63893.html" width = "1" height = "1" />

paulwong 2006-08-16 14:02 发表评论
]]>
վ֩ģ壺 Ƽ| | | | ֬| | | | Ȫ| | | | ˮ| | | | | üɽ| | | ˳| | ʳ| ƽ| ɼ| ¡| ƽ| ɿ| ۩| | | С| | | | | ʲ| | ɽ| Ϫ| ϼ|