Bug can at anywhere,Can you find it?
Kane
没有关于该用户的信息
由Kane撰写的日志
blur 与 focus 事件相处之道
三 10th
表单的处理一般分成2种: field 单独 onblur 时进行验证并提示 与 在提交表单时验证全部 field (并行与单独验证)。 今天遇到了一个问题,可以说是低级错误。单独说一下 每个 field onblur 时验证的问题。
<input type="text" onblur="test(this)" />
function test(o){
if(document.getElementById(o).value=='')
{
alert('test');
document.getElementById(o).focus();
}
}
上面这种情况下是可以正常运行,但下面的情况是当多个field需要同时验证的时候就有问题了
<input type="text" onblur="test(this)" />
<input type="text" onblur="test(this)" />
function test(o){
if(document.getElementById(o).value=='')
{
alert('test');
document.getElementById(o).focus();
}
}
在这种情况下会出现死循环,到时IE 卡死 cpu100% 。解决方法就是多field的时候,不能 又blur又focus。 鱼与熊掌不可兼得也…
jquery1.42 $.ajax Memory Leak 内存泄露问题
三 5th
年后,把项目的jquery升级到1.42版本了,一直在想怎么优化原有的js。 因为一直在用FF调试,没留意IE。 今天用IE 试了下,居然发现了一个严重的bug。 IE 下 $.ajax 会导致内存泄露。一开始还不知道是 jquery的原因,到处找代码原因。最后在 小超 同志下的测试,发现了原来是 jquery 版本问题。 真折腾自己啊… 降回1.32 版本就不存在问题了。
在找内存泄露的过程中,找到了2个小软件 Drip-0.5 和 IEJSLeaksDetector 专门对IE内存泄露检测的2个工具。
兼容IE FF 的窗口标题栏跑马灯效果
二 5th
仿WEB QQ 有新消息时,滚动窗口标题栏效果。 用了一个闭包的方法来实现。
/**
* 调用方法
* TitleFlash.stop();
* TitleFlash.setTitle(str);
* TitleFlash.go();
*/
var TitleFlash=(function(){
var msg="";
var msgud = " " + msg;
var T;
function titleScroll(){
if (msgud.length < msg.length)
msgud += " - " + msg;
msgud = msgud.substring(1, msgud.length);
document.title = msgud.substring(0, msg.length);
T=window.setTimeout(function(){titleScroll()},200)
}
return{
setTitle: function(title){
msg=title;
},
go:function(){
titleScroll();
},
stop:function(){
clearTimeout(T);
}
}
})();
ZendFramework1.97 和 Smarty 结合并用的方法
一 22nd
网上搜了一堆结合的方法都是 ZF1.8 以下的..自己研究了2天终于成功了。记录一下..
目录结构是Zend Studio – 7.1.1 自建生成的,其中 template 和 templates 是我自己加上去给Smarty用的,也可以说是替换ZF 的View层。如下图
第一步 配置application.ini
把 resources.frontController.noViewRenderer = 1 加到 production 里,然后在staging : production 里面加上smarty的配置信息
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.noViewRenderer = 1
[staging : production]
smarty.class_path = "Smarty/Smarty.class.php"
smarty.left_delimiter = "{"
smarty.right_delimiter = "}"
smarty.template_dir =APPLICATION_PATH "/template/"
smarty.compile_dir =APPLICATION_PATH "/templates_c/"
smarty.cache_dir = APPLICATION_PATH "/cache/"
smarty.cache_lifetime = 600
smarty.caching = 0
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
第二步 修改Bootstrap.php
添加下面的代码
public function _initView(){
$config = new Zend_Config_Ini(APPLICATION_PATH. '/configs/application.ini', 'staging');
require_once $config->smarty->class_path;
$smarty = new Smarty();
$smarty->left_delimiter = $config->smarty->left_delimiter;
$smarty->right_delimiter = $config->smarty->right_delimiter;
$smarty->template_dir = $config->smarty->template_dir;
$smarty->compile_dir = $config->smarty->compile_dir;
$smarty->cache_dir = $config->smarty->cache_dir;
$smarty->cache_lifetime = $config->smarty->cache_lifetime;
$smarty->caching = $config->smarty->caching;
Zend_Registry::set('smarty', $smarty);
}
第三步 在 controller 测试
添加下面的代码
public function indexAction()
{
$template='test/test.html';
$this->smarty = Zend_Registry::get('smarty');
$this->smarty->assign('test', 'iamkane');
$this->smarty->display($template);
}
提交bug之后,收到搜狐寄来的小狐狸了
一 21st
之前发现了个漏洞 【原创】0day 搜狗输入法漏洞获取系统权限 ,提交给搜狗官方了。 之后给安全经理描述了下漏洞的过程,重现后,搜狐说有小礼品送。 哈哈… 第一次知道原来发现bug,是有奖励的。
今天收到寄来的小狐狸了,上图
jQuery1.4 .change() 事件在IE下的bug?
一 19th
今天在项目里面,尝试使用 jQuery1.4 。 换了之后,感觉整个页面的交互是轻了,但是随之而来的是bug。 跟踪了一下,原来是 .change() 在IE下有一个这样的问题。 不知道是否jQuery 的bug了。代码如下:
<select name="" id="test">
<option value="1">1</option>
<option value="2" selected="selected">2</option>
<option value="3">3</option>
</select>
<select name="" id="test2">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<script type="text/javascript">
$(function(){
$("#test,#test2").change(function(){
alert($(this).val());
})
})
</script>
#test 下拉菜单默认绑定了2,在FF中是fire change 是鼠标点击option后,而在IE下是鼠标点了select就直接fire了。 郁闷…
点解每次Ekin的新歌都可以咁入心入肺!
一 18th
几多
前尘未舍得消散
能让我拣 我也甘心折返
心爱若要归还 早知那段时间
就赶快望你多几眼
遗憾有几多 放不低有几多
未讲的有几多 才后悔当初
这种结果 够令我质疑自己怎出错
怀疑我 痛快后会更坎坷
前事再观摩 推翻不了因果
唤醒不了烟火 其实早清楚
记忆遗祸 要是这煎熬躲都躲不过
泪流过 抹去后要更清楚 怎么去做我
就遗下一堆感叹
人物布景 永远不可再摊
想再会也艰难 分手最后晚餐
被逼放下你 我未惯
遗憾有几多 放不低有几多
未讲的有几多 才后悔当初
这种结果 够令我质疑自己怎出错
怀疑我 痛快后会更坎坷
前事再观摩 推翻不了因果
唤醒不了烟火 其实早清楚
记忆遗祸 要是这煎熬躲都躲不过
就回去 靠昨日那些苦果 成就今日我
终于从PJblog转到Wordpress了
一 16th
谋了wordpress好耐了… 一直没时间搞!用咗3年PJblog 终于可以舍弃了,舜仔太耐没怎么去更新过PJblog。估计时间都花去Qzone了哈哈..
换wordpress 换了一个晚上…本地半个钟就搞好晒.. 上传到服务器来,不是mysql版本太低,就是换服务器,这样那样的。 搞完都成1点了。
google就快走了. 真的要开始研究买VPN 路由器放去HK了。如果唔系以后连code.google.com都上唔到。
【原创】0day 搜狗输入法漏洞获取系统权限。
一 9th
无意发现了一个很严重的漏洞,和当年3389 输入法漏洞相似。 不过暂时不影响未系统未加载搜狗输入法(未登录系统)。如果远程服务器装了 搜狗,登录系统后加载了搜狗,而又未及时注销或kill掉搜狗输入法直接关闭了远程连接,那么这些server 就很危险咯。
测试环境:
OS: windows 7 ultimate
搜狗输入法 4.3 正式版
漏洞过程描述:
当windows加载了搜狗输入法后(登录系统后),锁定计算机(cltr+alt+del)。切换为搜狗输入法,输入拼音字母出现搜狗输入法工具条后,点击搜索,会调用 iexplorer.exe 。接下来就可以直接在IE地址栏调用system32目录并运行cmd,如果登录账号为administrators 组。则直接获取本机系统权限。
SSH Secure Shell 使用密钥的方法
一 7th
1. 先在global setting的认证 Key 里面创建自己的key
2. 登陆之后,上传key。 其中要将第二项要修改为 .ssh 。
3. 接着要做一些手工的操作,在命令行界面里,输入如下命令: (左脚注意前面的$符号不是命令,只是个提示符)
$ cd .ssh/
$ ls -l
会至少看到你刚才生成的 .pub 公钥文件和一个 authorization 认证配置文件。如果没有你刚才起的名子的文件,那就有问题,检查上面的过程。
接着做下面的命令,假设我生成的是 key.pub
$ ssh-keygen -i -f key.pub >> authorized_keys
然后,删除刚才生成的文件:
$ rm -rf key.pub
$ rm -rf authorization
基本完成,剩下就是重新创建一个连接,使用pubkey 的方式。





