<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CaiKanXP的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/CaiKanXP</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; CaiKanXP]]></copyright><item><title><![CDATA[#正则表达式#数值加上千分符]]></title><link>https://blog.youkuaiyun.com/CaiKanXP/article/details/51394010</link><guid>https://blog.youkuaiyun.com/CaiKanXP/article/details/51394010</guid><author>CaiKanXP</author><pubDate>Fri, 13 May 2016 11:48:24 +0800</pubDate><description><![CDATA[#正则表达式#数值加上千分符
'1234567890.12'.replace(/(\d)(?=(\d{3})+(\.|$))/g, '$1,')==='1,234,567,890.12'
缺点：小数部分暂时不能正确处理，只能保证不超过3位小数能得到正确结果。]]></description><category></category></item><item><title><![CDATA[对AngularJS中无法直接获取Promise状态的不解]]></title><link>https://blog.youkuaiyun.com/CaiKanXP/article/details/49844833</link><guid>https://blog.youkuaiyun.com/CaiKanXP/article/details/49844833</guid><author>CaiKanXP</author><pubDate>Sun, 15 Nov 2015 03:11:02 +0800</pubDate><description><![CDATA[jQuery的Promise可以通过state()来判断当前状态（早期版本用isResolved()和isRejected()来判断）。
AngularJS（1.4.7）的Promise却没有类似的公开接口来获取状态。
有一个内部接口貌似可以用来判断状态：
promise.$$state.status
但既然是内部接口，就不宜正式使用。
有人在github上提出过类似的问题，但被建议换一]]></description><category></category></item><item><title><![CDATA[PS多窗口间复制切片的“笨办法”]]></title><link>https://blog.youkuaiyun.com/CaiKanXP/article/details/39966085</link><guid>https://blog.youkuaiyun.com/CaiKanXP/article/details/39966085</guid><author>CaiKanXP</author><pubDate>Fri, 10 Oct 2014 18:51:13 +0800</pubDate><description><![CDATA[PS切页面，有时候可能会遇到这种情况：设计有改动，但是切片要和以前相同。
此时如果可以直接利用以前切好的切片，就能省下很多重新划分切片的工夫。


但设计人一般并不会在你上一次划过切片的PSD上修改，而是会重新输出一个PSD。
可以将一个PSD中已经划好的切片复制到另一个PSD上吗？
遗憾的是，目前PS CS6仍然不支持在多个窗口间复制切片，只能窗口内复制切片（按住Alt不松拖动切片即]]></description><category></category></item><item><title><![CDATA[移动设备UserAgent测试]]></title><link>https://blog.youkuaiyun.com/CaiKanXP/article/details/20552277</link><guid>https://blog.youkuaiyun.com/CaiKanXP/article/details/20552277</guid><author>CaiKanXP</author><pubDate>Wed, 05 Mar 2014 16:24:24 +0800</pubDate><description><![CDATA[以下为在设备“HM2013022”上测试各种浏览器的User Agent。
测试结果使用DOM/JS接口window.navigator.userAgent获得。
QQ
Mozilla/5.0 (Linux; U; Android 4.2.1; zh-cn; 2013022 Build/HM2013022) AppleWebKit/534.30 (KHTML, like Gecko) Ver]]></description><category></category></item><item><title><![CDATA[远程桌面连接窗口模式最大化分辨率]]></title><link>https://blog.youkuaiyun.com/CaiKanXP/article/details/17753681</link><guid>https://blog.youkuaiyun.com/CaiKanXP/article/details/17753681</guid><author>CaiKanXP</author><pubDate>Thu, 02 Jan 2014 11:48:21 +0800</pubDate><description><![CDATA[本地操作系统
本地主题布局
本地分辨率
远程分辨率


Windows 7
Windows 7 Basic/Aero 默认工具栏位置
1680x1050
mstsc /w:1680 /h:988]]></description><category></category></item><item><title><![CDATA[比较文件名时，大小写转换函数需慎用]]></title><link>https://blog.youkuaiyun.com/CaiKanXP/article/details/9235709</link><guid>https://blog.youkuaiyun.com/CaiKanXP/article/details/9235709</guid><author>CaiKanXP</author><pubDate>Wed, 03 Jul 2013 18:01:56 +0800</pubDate><description><![CDATA[Windows下的文件名是不区分大小写的。
大小写的概念不仅仅是英文字母中有，其他语言的字母中也有。
比如以下三个文件名在Windows中是代表同一个文件：
Τάχιστη.txt
τάχιστη.txt
ΤΆΧΙΣΤΗ.txt这个文件名的文字摘自PHP文档 mb_strtolower 的范例中：http://www.php.net/manual/zh/function.mb-strtolo]]></description><category></category></item><item><title><![CDATA[Windows下WSH/JS实现SVN服务器钩子脚本阻止提交空日志信息和垃圾文件]]></title><link>https://blog.youkuaiyun.com/CaiKanXP/article/details/8279921</link><guid>https://blog.youkuaiyun.com/CaiKanXP/article/details/8279921</guid><author>CaiKanXP</author><pubDate>Tue, 11 Dec 2012 13:39:33 +0800</pubDate><description><![CDATA[如何强制用户在提交SVN时填写日志信息？
如果用户使用的都是TortoiseSVN客户端，可以给文件夹加上“tsvn:logminsize”属性。当用户使用TSVN提交此文件夹内的改动时，若日志信息长度不够，提交确定按钮会保持灰色不可用。不过此法对于非TSVN客户端便无效了。


作为更严格的限制，可以在Subversion服务器端强制必须填写日志信息，这时需用到pre-commit钩子脚]]></description><category></category></item><item><title><![CDATA[Chrome中利用HTML5实现具有文件“编辑”及“下载”功能的本地应用]]></title><link>https://blog.youkuaiyun.com/CaiKanXP/article/details/8171751</link><guid>https://blog.youkuaiyun.com/CaiKanXP/article/details/8171751</guid><author>CaiKanXP</author><pubDate>Mon, 12 Nov 2012 03:48:31 +0800</pubDate><description><![CDATA[【Data URL】
最新的HTML5浏览器中，已经支持用Data URL（RFC2397）来引用“外部”资源了。
比如下面的链接，在HTML5浏览器中点击后，会转到一个新页面，显示“Hello Data URL!”字样。
Hello
如果文本内容包含特殊字符怎么办？Data URL也是一种URL，也可以使用通用的URL转义编码：
URL escaped上面的例子都是纯文本数据。其实Da]]></description><category></category></item><item><title><![CDATA[CSS Sprites制作导航悬浮高亮各方案比较]]></title><link>https://blog.youkuaiyun.com/CaiKanXP/article/details/7383305</link><guid>https://blog.youkuaiyun.com/CaiKanXP/article/details/7383305</guid><author>CaiKanXP</author><pubDate>Thu, 22 Mar 2012 15:59:28 +0800</pubDate><description><![CDATA[只使用一张CSS Sprites图片，制作导航菜单背景，鼠标悬浮高亮（其实就是切换背景图）。
由于各浏览器目前对“background-position-x”这种“不规范”的css属性支持程度不一，于是派生出多种实现方案。


方案一：


a {
	float: left;
	width: 80px;
	height: 40px;
	text-indent: -9999px;
	ov]]></description><category></category></item><item><title><![CDATA[#灵感笔记#关于增强IE对CSS选择符的支持]]></title><link>https://blog.youkuaiyun.com/CaiKanXP/article/details/7338003</link><guid>https://blog.youkuaiyun.com/CaiKanXP/article/details/7338003</guid><author>CaiKanXP</author><pubDate>Wed, 21 Mar 2012 18:15:27 +0800</pubDate><description><![CDATA[虽然在官方规范之中，HTML有版本，CSS有级别，但实践当中无所谓版本级别，关键是看浏览器是否支持。
如IE6不支持CSS子元素选择符，就非常令人沮丧。
虽有其它替代方案，比如给HTML元素都加上类名，但那样代码量会增加不少，而且不能很好的利用HTML元素语义。
目前有一个第三方js库 Selectivizr(http://selectivizr.com/)，当前版本v1.0.2，可增强IE]]></description><category></category></item><item><title><![CDATA[偶然发现的诡异现象：Chrome浏览器滚动条变色]]></title><link>https://blog.youkuaiyun.com/CaiKanXP/article/details/7321945</link><guid>https://blog.youkuaiyun.com/CaiKanXP/article/details/7321945</guid><author>CaiKanXP</author><pubDate>Mon, 05 Mar 2012 18:46:28 +0800</pubDate><description><![CDATA[偶然发现淘宝某些页面在Chrome下，滚动条显示带一点淡蓝色。
例如：http://arcade.taobao.com/
但是相同的页面在IE下打开，滚动条却还是默认的样式。可见并非兼容IE的经典滚动条样式。
看来是Chrome特有的？


查看源码就行分析。
目前已知可以通过 ::-webkit-scrollbar 来设置webkit浏览器的滚动条样式，可是在本例中，完全找不到这样]]></description><category></category></item><item><title><![CDATA[测试浏览器对window.JSON的支持情况]]></title><link>https://blog.youkuaiyun.com/CaiKanXP/article/details/7239116</link><guid>https://blog.youkuaiyun.com/CaiKanXP/article/details/7239116</guid><author>CaiKanXP</author><pubDate>Tue, 07 Feb 2012 17:49:01 +0800</pubDate><description><![CDATA[ECMA-262标准第5版已经内置了JSON对象，最新的浏览器都已经支持了，但老的浏览器还未完全退出市场，不能完全忽略。
在地球被HTML5完全占领之前，测试一下各浏览器（主要是IE8）对内置 window.JSON 的支持情况，顺便也测了一下Box Model盒模型。

主页面代码：index.html

















脚本代码：test.js
function p]]></description><category></category></item><item><title><![CDATA[一例flash在Safari浏览器显示异常的bug]]></title><link>https://blog.youkuaiyun.com/CaiKanXP/article/details/7230679</link><guid>https://blog.youkuaiyun.com/CaiKanXP/article/details/7230679</guid><author>CaiKanXP</author><pubDate>Fri, 03 Feb 2012 12:20:43 +0800</pubDate><description><![CDATA[问题症状：
某个项目中，需要调用window.open()打开一个新窗口，里面会加载一个包含flash的页面。
其它浏览器都没什么问题，但是在Windows XP/7 & Safari 5.1.2 & Adobe Flash Player 11.1.102.55环境中，有相当大的几率会出现如下症状：
弹出新窗口中应该显示的flash的区域，开始会显示一片白板；直到被点击一次，者调整窗口大小，]]></description><category></category></item><item><title><![CDATA[IE标题被自动修改为网址片段标识（#之后的文字）的解决方案]]></title><link>https://blog.youkuaiyun.com/CaiKanXP/article/details/6933358</link><guid>https://blog.youkuaiyun.com/CaiKanXP/article/details/6933358</guid><author>CaiKanXP</author><pubDate>Mon, 07 Nov 2011 11:21:58 +0800</pubDate><description><![CDATA[问题症状：
当页面中嵌入了flash，并且页面的地址中含有“片段标识”（Fragment Identifier，即网址#之后的文字）时，用IE浏览器访问此页面，会发现flash加载完成后，浏览器窗口的标题末尾会被加上“片段标识”，或是整个标题被替换成“片段标识”。


问题出现条件：


已知会导致问题的软件版本：IE6，Flash Player 11.0.1.152

此问题目]]></description><category></category></item><item><title><![CDATA[EditPlus What's New新增功能部分注解]]></title><link>https://blog.youkuaiyun.com/CaiKanXP/article/details/6555931</link><guid>https://blog.youkuaiyun.com/CaiKanXP/article/details/6555931</guid><author>CaiKanXP</author><pubDate>Mon, 20 Jun 2011 12:12:00 +0800</pubDate><description><![CDATA[针对EditPlus更新中提到的某些功能，做一些注解。EditPlus Whats New原文出处：http://www.editplus.com/new.html Version 3.30 (2011-04-19)* Supports TSVN commands (File->TSVN).支持TSVN命令（文件→TSVN）。要使用这些功能，你必须事先已经安装好T]]></description><category></category></item><item><title><![CDATA[Firefox3中使用XMLHttpRequest(Ajax)发送二进制POST数据的简易调试法]]></title><link>https://blog.youkuaiyun.com/CaiKanXP/article/details/6415440</link><guid>https://blog.youkuaiyun.com/CaiKanXP/article/details/6415440</guid><author>CaiKanXP</author><pubDate>Thu, 12 May 2011 18:13:00 +0800</pubDate><description><![CDATA[<br />XHR（XMLHttpRequest）发送POST文本数据的情况还算常见，直接调用“xhr.send(data)”即可。<br />但是对于二进制数据的处理稍微复杂。<br /> <br />不过在Firefox3中，可以借助下面的方法来调试ajax发送post二进制数据：<br />相关脚本代码：<br /><script type="text/javascript"><!--
function test() {
	var data = prompt('请输入数据(GREP Hex)：',]]></description><category></category></item><item><title><![CDATA[利用TortoiseSVN钩子脚本，自动填写/导入日志信息]]></title><link>https://blog.youkuaiyun.com/CaiKanXP/article/details/6203118</link><guid>https://blog.youkuaiyun.com/CaiKanXP/article/details/6203118</guid><author>CaiKanXP</author><pubDate>Wed, 23 Feb 2011 17:30:00 +0800</pubDate><description><![CDATA[<br />使用TortoiseSVN提交时，每次都填写日志信息比较繁琐。<br />Subversion命令行客户端可以通过选项“--file”(“-F”)从文件载入日志信息。<br />TSVN虽然可以很方便的选择历史消息，但是当前的最新版本“TortoiseSVN 1.6.12”好像还不支持选择从文件导入日志信息。<br />不过我们可以利用TSVN的“钩子脚本”来实现类似的功能，让它自动从某些文件中读取日志信息并填入提交对话框。<br />TSVN在执行提交或者更新的前后，会调用相应的钩子脚本，我们]]></description><category></category></item><item><title><![CDATA[IE7编码解析错误导致页面变成白板]]></title><link>https://blog.youkuaiyun.com/CaiKanXP/article/details/6021276</link><guid>https://blog.youkuaiyun.com/CaiKanXP/article/details/6021276</guid><author>CaiKanXP</author><pubDate>Fri, 19 Nov 2010 13:06:00 +0800</pubDate><description><![CDATA[<br />操作系统：Windows XP SP3<br />现象：页面显示一片空白。<br />原因：HTML字符编码识别错误<br />测试重现：<br />IE6/8都没有的问题，被IE7独占了：<br /><html>
<head>
<title>源</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>如果你不能看到这段文字，说明IE7未正确解析HTML字符编]]></description><category></category></item><item><title><![CDATA[又一段让IE6崩溃的CSS代码]]></title><link>https://blog.youkuaiyun.com/CaiKanXP/article/details/5982456</link><guid>https://blog.youkuaiyun.com/CaiKanXP/article/details/5982456</guid><author>CaiKanXP</author><pubDate>Tue, 02 Nov 2010 16:43:00 +0800</pubDate><description><![CDATA[<br />今天本想修改<a>标签内鼠标悬浮时的文本样式，于是测试是否可以利用伪类 :hover 结合 :first-letter 或 :first-line 来实现，结果发现了这一段可以让IE6崩溃的代码：<br /><style type="text/css">
a {display: block;}
div a:first-letter {background: red;}
</style>
<div><a><span>x</span></a></div>]]></description><category></category></item><item><title><![CDATA[＜script＞关闭标签的写法所引发的疑案]]></title><link>https://blog.youkuaiyun.com/CaiKanXP/article/details/5850372</link><guid>https://blog.youkuaiyun.com/CaiKanXP/article/details/5850372</guid><author>CaiKanXP</author><pubDate>Mon, 30 Aug 2010 17:46:00 +0800</pubDate><description><![CDATA[<br />自从有了XHTML，很多开发者会本着尽善尽美精益求精的态度，开始对代码进行一系列的修正和优化了。<br />比如，标签都要关闭了：<br /><img src="xxx" /><br /> <br />这本来没有错，可这时候突然冒出个新问题来：<br />有些代码看似没有错误合乎语法，可就是无法达到预期的效果，典型症状之一就是脚本“缺少对象”/“变量未定义”等异常。<br /> <br />这极有可能是“优化”后的代码产生的浏览器兼容性bug：某些标签的关闭“优化”要慎用。<br />比如<sc]]></description><category></category></item></channel></rss>