<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Javascript on 冯威的博客</title><link>https://fwhyy.com/tags/javascript/</link><description>Recent content in Javascript on 冯威的博客</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Wed, 02 Dec 2015 00:00:00 +0800</lastBuildDate><atom:link href="https://fwhyy.com/tags/javascript/atom.xml" rel="self" type="application/rss+xml"/><item><title>使用fancybox</title><link>https://fwhyy.com/2015/12/use-fancybox/</link><pubDate>Wed, 02 Dec 2015 00:00:00 +0800</pubDate><guid>https://fwhyy.com/2015/12/use-fancybox/</guid><description>&lt;p&gt;fancybox是一款不错的展示图片的jQuery插件，就目前在网上查到的资料大体有1.x和2.x两个大大版本，两个版本的用法有不少的差别，本文主要介绍的是2.1.5版本的使用。&lt;/p&gt;</description></item><item><title>JS中的Replace方法</title><link>https://fwhyy.com/2012/04/the-replace-method-in-js/</link><pubDate>Mon, 16 Apr 2012 00:00:00 +0800</pubDate><guid>https://fwhyy.com/2012/04/the-replace-method-in-js/</guid><description>&lt;p&gt;最近查一个bug，原因是JS中的Replace方法造成的，当将一个字符串中有处需要替换时，一般会用到JS中的Replace方法，Replace方法的第一个参数如果是传的字符串，只会替换第一处。代码如下：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;var str = &amp;#34;0CEA65D5-DB8E-4876-A6F8-C88AC7F0E185,E846C244-8A19-4374-879B-0B1DC08D1747,6CB3EBA4-1E22-4E4D-8800-AE31130B6F5D&amp;#34;;
alert(str.replace(&amp;#34;,&amp;#34;,&amp;#34;&amp;#39;,&amp;#39;&amp;#34;));
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;上面的代码本意是将用逗号隔开的GUID的逗号替换成’,’，但实际结果只将第一个逗号替换了。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201302116081.webp" alt="2012-04-16_230940" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;解决这个问题只需将replace的第一个参数使用正则的方式即可，代码如下:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;var reg = new RegExp(&amp;#34;,&amp;#34;,&amp;#34;g&amp;#34;);
var str = &amp;#34;0CEA65D5-DB8E-4876-A6F8-C88AC7F0E185,E846C244-8A19-4374-879B-0B1DC08D1747,6CB3EBA4-1E22-4E4D-8800-AE31130B6F5D&amp;#34;;
alert(str.replace(reg,&amp;#34;&amp;#39;,&amp;#39;&amp;#34;));
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;结果如下：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201302116958.webp" alt="2012-04-16_231320" loading="lazy" decoding="async"&gt;
&lt;/p&gt;</description></item><item><title>给Javascript代码“预留退路”</title><link>https://fwhyy.com/2011/06/retreat-to-the-javascript-code-reserved/</link><pubDate>Thu, 16 Jun 2011 00:00:00 +0800</pubDate><guid>https://fwhyy.com/2011/06/retreat-to-the-javascript-code-reserved/</guid><description>&lt;p&gt;所谓给Javascript代码“预留退路”意思就是当用户将浏览器的Javascript功能禁用的时候，页面中使用了Javascript的地方要能够以变通的方式得以运行，而不能让用户看到出错或是点击某按钮而毫无反应，这也是用户体验很重要的一部分。&lt;/p&gt;
&lt;p&gt;举个简单的例子来说，点击页面中的一个链接可以弹出一个新的页面，我们通常会使用window.open，代码如下：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;a href=&amp;#34;#&amp;#34; onclick=&amp;#34;openWin(&amp;#39;http://baidu.com&amp;#39;);&amp;#34;&amp;gt;百度&amp;lt;/a&amp;gt;
&amp;lt;script type=&amp;#34;text/javascript&amp;#34;&amp;gt;
 function openWin(url) {
 window.open(url, &amp;#34;openwin&amp;#34;, &amp;#34;width=600,height=400&amp;#34;);
 }
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;或&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;a href=&amp;#34;javascript:openWin1(&amp;#39;http://baidu.com&amp;#39;);&amp;#34; &amp;gt;百度&amp;lt;/a&amp;gt;
&amp;lt;script type=&amp;#34;text/javascript&amp;#34;&amp;gt;
 function openWin(url) {
 window.open(url, &amp;#34;openwin&amp;#34;, &amp;#34;width=600,height=400&amp;#34;);
 }
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;上面的两种方法第一种将href的值设置为#，第二种使用伪协议javascript: ，这两种做法都不是很好，没有“预留退路”，当用户将浏览器的Javascript禁用后，点击链接都不是我们想要的结果，正确的做法如下：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;a href=&amp;#34;http://baidu.com/&amp;#34;
 onclick=&amp;#34;openWin(this.getAttribute(&amp;#39;href&amp;#39;));return false;&amp;#34; &amp;gt;百ù度è&amp;lt;/a&amp;gt;
 &amp;lt;script type=&amp;#34;text/javascript&amp;#34;&amp;gt;
 function openWin1(url) {
 window.open(url, &amp;#34;openwin&amp;#34;, &amp;#34;width=600,height=400&amp;#34;);
 }
 &amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;改进后的方法在禁用Javascript后，也会打开href中的链接地址，只是打开方式有所不同，相比上面两种已经好多了。&lt;/p&gt;</description></item><item><title>在JS方法中返回多个值的三种方法</title><link>https://fwhyy.com/2009/12/in-js-method-return-multiple-values-of-the-three-methods/</link><pubDate>Fri, 11 Dec 2009 00:00:00 +0800</pubDate><guid>https://fwhyy.com/2009/12/in-js-method-return-multiple-values-of-the-three-methods/</guid><description>&lt;p&gt;在使用JS编程中，有时需要在一个方法返回两个个或两个以上的数据，用下面的几种方法都可以实现：&lt;/p&gt;
&lt;p&gt;1 使用数组的方式，如下：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
 &amp;lt;title&amp;gt;JS函数返回多个值--oec2003&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
 &amp;lt;input type=&amp;#34;button&amp;#34; onclick=&amp;#34;getNames()&amp;#34; value=&amp;#34;test&amp;#34; /&amp;gt;

 &amp;lt;script type=&amp;#34;text/javascript&amp;#34;&amp;gt;
function getData()
{
 var names=new Array(&amp;#34;oec2003&amp;#34;,&amp;#34;oec2004&amp;#34;);
 return names;
}
function getNames()
{
 var names=getData();
 alert(getData()[0]); //返回oec2003
}
&amp;lt;/script&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;2 将数据封装到Json中返回，如下：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;title&amp;gt;JS函数返回多个值--oec2003&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;input type=&amp;#34;button&amp;#34; onclick=&amp;#34;getInfo()&amp;#34; value=&amp;#34;test&amp;#34;/&amp;gt;
&amp;lt;script type=&amp;#34;text/javascript&amp;#34;&amp;gt;
function getData()
{
 var info={&amp;#34;name&amp;#34;:&amp;#34;oec2003&amp;#34;,&amp;#34;age&amp;#34;:&amp;#34;25&amp;#34;};
 return info;
}
function getInfo()
{
 var info=getData();
 var name=info[&amp;#34;name&amp;#34;];
 var age=info[&amp;#34;age&amp;#34;];
 alert(&amp;#34;姓名：&amp;#34;+name+&amp;#34; 年龄：&amp;#34;+age);
}
&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;更详细的Json的介绍请看这里&lt;/p&gt;
&lt;p&gt;3 这是最简单的一种方法，看下面代码：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;title&amp;gt;JS函数返回多个值--oec2003&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;input type=&amp;#34;button&amp;#34; onclick=&amp;#34;getInfo()&amp;#34; value=&amp;#34;test&amp;#34;/&amp;gt;
&amp;lt;script type=&amp;#34;text/javascript&amp;#34;&amp;gt;
 function getData()
 {
 return [&amp;#34;oec2003&amp;#34;, 25]
 }
 function getInfo()
 {
 var info = getData();
 alert(&amp;#34;姓名：&amp;#34; + info[0] + &amp;#34;年龄：&amp;#34; + info[1]);
 }
&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>消除window.close()的提示窗口</title><link>https://fwhyy.com/2009/01/eliminate-the-prompt-window/</link><pubDate>Thu, 08 Jan 2009 00:00:00 +0800</pubDate><guid>https://fwhyy.com/2009/01/eliminate-the-prompt-window/</guid><description>&lt;p&gt;Window.close()这句脚本是用来关闭当前窗口，如果是在window.open的窗口中执行Window.close()，将会很顺利地将窗口关闭，但如果是在一非window.open打开的窗口中执行Window.close()，将会弹出一个提示窗口，如下：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201300636671.webp" alt="2010-12-30_124855" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;要在程序中消除这个提示框也很简单，不过在IE6和IE7稍有不同&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;IE6&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;html xmlns=&amp;#34;http://www.w3.org/1999/xhtml&amp;#34; &amp;gt;
&amp;lt;head id=&amp;#34;Head1&amp;#34; runat=&amp;#34;server&amp;#34;&amp;gt;
 &amp;lt;title&amp;gt;IE6Close&amp;lt;/title&amp;gt;
 &amp;lt;script type=&amp;#34;text/javascript&amp;#34;&amp;gt;
 function closeWin()
 {
 window.opener=null;
 window.close();
 }
 &amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
 &amp;lt;form id=&amp;#34;form2&amp;#34; runat=&amp;#34;server&amp;#34;&amp;gt;
 &amp;lt;div&amp;gt;
 &amp;lt;input id=&amp;#34;btnClose&amp;#34; type=&amp;#34;button&amp;#34; value=&amp;#34;close&amp;#34; onclick=&amp;#34;closeWin()&amp;#34;/&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;/form&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;2.IE7&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;html xmlns=&amp;#34;http://www.w3.org/1999/xhtml&amp;#34; &amp;gt;
&amp;lt;head id=&amp;#34;Head1&amp;#34; runat=&amp;#34;server&amp;#34;&amp;gt;
 &amp;lt;title&amp;gt;IE7Colse&amp;lt;/title&amp;gt;
 &amp;lt;script type=&amp;#34;text/javascript&amp;#34;&amp;gt;
 function closeWin()
 {
 window.open(&amp;#39;&amp;#39;,&amp;#39;_self&amp;#39;,&amp;#39;&amp;#39;);
 window.close();
 }
 &amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
 &amp;lt;form id=&amp;#34;form2&amp;#34; runat=&amp;#34;server&amp;#34;&amp;gt;
 &amp;lt;div&amp;gt;
 &amp;lt;input id=&amp;#34;btnClose&amp;#34; type=&amp;#34;button&amp;#34; value=&amp;#34;close&amp;#34; onclick=&amp;#34;closeWin()&amp;#34;/&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;/form&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>CheckBox全选终极方案</title><link>https://fwhyy.com/2008/10/the-ultimate-solution-checkbox-selection/</link><pubDate>Thu, 23 Oct 2008 00:00:00 +0800</pubDate><guid>https://fwhyy.com/2008/10/the-ultimate-solution-checkbox-selection/</guid><description>&lt;p&gt;在我们的程序开发中经常会要用到CheckBox的全选，通常情况下是在一些数据绑定控件中如Gridview等&lt;/p&gt;</description></item><item><title>My97 使用的一点技巧</title><link>https://fwhyy.com/2008/10/some-tips-of-my97/</link><pubDate>Wed, 15 Oct 2008 00:00:00 +0800</pubDate><guid>https://fwhyy.com/2008/10/some-tips-of-my97/</guid><description>&lt;h2 id="需求"&gt;需求：&lt;/h2&gt;
&lt;p&gt;1.两个时间文本框，一个开始时间和一个结束时间，两个时间都是今天起以后的时间，并且开始时间不能大于结束时间。&lt;/p&gt;
&lt;p&gt;这样的需求在很多地方都会应用到，比如有些网站提供一些服务的购买，用户需要选择要购买服务的时间域等等。&lt;/p&gt;
&lt;p&gt;在My97的官网中有自定义时间的例子，我只是根据需要稍加了修改，代码如下:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;
&amp;lt;script type=&amp;#34;text/javascript&amp;#34; src=&amp;#34;WdatePicker.js&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;input id=&amp;#34;txtB&amp;#34; type=&amp;#34;text&amp;#34;
onclick=&amp;#34;WdatePicker({minDate:&amp;#39;%y-%M-#{%d}&amp;#39;,maxDate:&amp;#39;#F{$dp.$D(\&amp;#39;txtE\&amp;#39;,{d:-1})}&amp;#39;})&amp;#34;/&amp;gt;
&amp;lt;input id=&amp;#34;txtE&amp;#34; type=&amp;#34;text&amp;#34;
onFocus=&amp;#34;WdatePicker({minDate:&amp;#39;#F{$dp.$D(\&amp;#39;txtB\&amp;#39;,{d:1})||\&amp;#39;%y-%M-#{%d+2}\&amp;#39;}&amp;#39;})&amp;#34;/&amp;gt;

&amp;lt;/body&amp;gt;

&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>清除上传控件 File 的值</title><link>https://fwhyy.com/2008/07/remove-the-file-upload-control-values/</link><pubDate>Fri, 04 Jul 2008 00:00:00 +0800</pubDate><guid>https://fwhyy.com/2008/07/remove-the-file-upload-control-values/</guid><description>&lt;p&gt;因为File控件的value值是只读的，所以用document.getElementById(“File1″).value=”” 并不能清楚file控件的值。&lt;/p&gt;</description></item><item><title>开发总结—Javascript篇</title><link>https://fwhyy.com/2008/05/development-summary-javascript/</link><pubDate>Sun, 25 May 2008 00:00:00 +0800</pubDate><guid>https://fwhyy.com/2008/05/development-summary-javascript/</guid><description>&lt;p&gt;本文是我在平时工作中所遇到的javascript方面的一些知识总结，主要针对在asp.net中使用脚本。&lt;/p&gt;</description></item><item><title>window.print()实现局部打印</title><link>https://fwhyy.com/2008/03/window-print-implementation-local-print/</link><pubDate>Thu, 06 Mar 2008 00:00:00 +0800</pubDate><guid>https://fwhyy.com/2008/03/window-print-implementation-local-print/</guid><description>&lt;p&gt;window.print() 实际上，是浏览器打印功能菜单的一种程序调用。与点击打印功能菜单一样，不能精确分页，不能设置纸型，套打的问题更加无从谈起，只不过，可以让用户不用去点菜单，直接点击网页中的一个按钮，或一个链接里面调用罢了。事实上，很多用户都是采用这种方式打印，但是这种方式最致命的缺点是不能设置打印参数，比如纸型，页边距，选择打印机等等。&lt;/p&gt;</description></item><item><title>C#和Javascript交互</title><link>https://fwhyy.com/2007/11/csharp-and-javascript-interaction/</link><pubDate>Fri, 23 Nov 2007 00:00:00 +0800</pubDate><guid>https://fwhyy.com/2007/11/csharp-and-javascript-interaction/</guid><description>&lt;p&gt;在asp.net开发中，经常会用到后台和前台的交互，就此总结了一点c#和javascript相互操作的方法。&lt;/p&gt;</description></item><item><title>常用的一些正则表达式</title><link>https://fwhyy.com/2007/05/commonly-used-some-regular-expressions/</link><pubDate>Tue, 08 May 2007 00:00:00 +0800</pubDate><guid>https://fwhyy.com/2007/05/commonly-used-some-regular-expressions/</guid><description>&lt;p&gt;正则表达式用于字符串处理、表单验证等场合，实用高效。但用到时总是不太把握，以致往往要查证一番。现将一些常用的表达式收集于此，以备不时之需。&lt;/p&gt;</description></item></channel></rss>