Archive for the ‘原创技术文章’ Category

如何跳出jquery的each?

八月 1st, 2009

jquery再遍历选定的对象时候用each比较方便。有种应用是找到里面符合条件的对象后,要跳出这个循环。
javascript的跳出循环一般用break.
同事遇到这个问题,下意识 的用了break,想跳出这个循环。结果报错

SyntaxError: unlabeled break must be inside loop or switch

经查,应该用一个

return false;

continue是跳出当前循环,继续下一个循环。

Popularity: 49%

jquery实现ajax投票一例

七月 30th, 2009

其实是很简单的,一个或多个页面有一堆摄影作品,用户点击投票,相应的作品数量增加1.

前台jsp部分的代码如下:

  1. ...
  2. 票数:<span id="i<%=id%>"><%=vote_number%></span><br/>
  3.     <a onclick=myvote(<%=id%>); href='javascript:;'">投票</a>
  4. ...

js部分的代码如下

  1. function myvote(id){
  2.     $.post("vote.jsp", { id: id },
  3.   function(data){
  4.         eval("var data="+data);
  5.     if (data.issucc=="0"){
  6.         alert(data.mess)
  7.     }else{
  8.         //alert("更新页面");
  9.         $("#i"+data.myid).html(data.votenum);
  10.         }
  11.   });
  12. }

后台返回的json数据如下

{issucc:<%=issucc%>,mess:”<%=mess%>“,votenum:<%=votenum%>,myid:<%=myid%>}

issucc:是否成功
mess:信息,主要是错误信息,比如没登录,超过限制等
votenum:投票后的得票总数
myid:投票的id,用于更新页面的投票数。

Popularity: 35%

备份一段js代码

六月 26th, 2009

<script language=”JavaScript” src=”/include/jquery-latest.pack.js”></script>
<script language=JavaScript>
var tmp=”";
function formatn(n){
 if (n<10)
  return “0″+n;
 else
  return “”+n;
}
$(document).ready(function() {
 var f=document.form1.elements;
 var n_i=1;
 var s_i=”";
 var n_v=1;
 for(var i=0;i<f.length;i++){
  //tmp+=f[i].value+”\n”;
  if (f[i].type==”hidden”||f[i].name==”reg_no” ){
   continue;
  }
  if (f[i].type==”text”||f[i].type==”textarea”){
   f[i].name=f[i].id=”text_”+formatn(n_i);
   n_i++; continue;
  }
  if (f[i].type==”radio”||f[i].type==”checkbox”){
   var oname=f[i].name;
   f[i].name=f[i].id=”check_”+formatn(n_i);
   f[i].value=formatn(n_v);
   if (i<f.length){
    if (oname!=f[i+1].name||f[i].type!=f[i+1].type){
     n_i++;
     n_v=1;
    }
    else
     n_v++;
   }
    continue;
  }
 }
});
</script>

Popularity: 24%

ecshop 2.6.2 sitemaps.php的一个bug

五月 16th, 2009

生成的sitemap文件,商品分类文件,如果是

http://www.abc.com/category-1-b0.html

在sitemap文件里面少了一个”/”
结果变成了

http://www.abc.comcategory-1-b0.html

分类是
修改代码
sitemaps.php大约第66行

  1. 'loc'        =>  "$site_url" . build_uri('category', array('cid' => $row['cat_id'])),

改成

  1. 'loc'        =>  "$site_url/" . build_uri('category', array('cid' => $row['cat_id'])),

即可

Popularity: 29%

FCKEditor XML Request Error:Internal Server Error(500)

五月 1st, 2009

原来一直能用的ecshop后台信息发布里面的fckeditor上传功能,换了个机器后不能用了。以为是文件损坏,上传一边不行。
什么xml错误,还弹出一个大的JavaScript alert警告框,内容就是服务器端错误的500内容
网上搜,又说是配置问题,主题问题,想想都不应该,直接请求
filemanager/connectors/php/connector.php
出了服务器的500错误,html文件能访问,txt也行。
后来从根目录开始查,发现到fckeditor目录里面的php文件开始不能访问。
改了fckeditor目录的属性为755,问题解决。

Popularity: 37%

如何在wordpress的the_excerpt中使用nextgen-gallery(NGG)图片

三月 5th, 2009

NextGEN gallery是个很不错的wordpress相册插件。
新版本的wordpress有了一个the_excerpt的方法可以用,原来就有?不知道。
the_excerpt主要是调用原来的摘要部分,供模板调用。但是和the_content的区别是,the_excerpt里面不支持nextgen-gallery(NGG)的singpic,gallery等标签不能用。如果在模板里面用了the_excerpt,但是又想显示图片就不方便了。
用的是1.1.0版本,查了一下代码,找到
lib\shortcodes.php

class NextGEN_shortcodes
大概在18行,看到一行注释,说如果在the_excerpt里面用会有不期望的输出。如果你高兴就去掉下面的注释。

  1. // add_filter('the_excerpt', array(&$this, 'convert_shortcode'));
  2. // add_filter('the_excerpt', 'do_shortcode', 11);

改成

  1. add_filter('the_excerpt', array(&$this, 'convert_shortcode'));
  2. add_filter('the_excerpt', 'do_shortcode', 11);

测试可以,没发现啥异常。先用着吧。

Popularity: 38%

ecshop关闭版本检查的功能

二月 27th, 2009

要修改如下几个文件

\upload\admin\shop_config.php(205):
\upload\install\includes\lib_installer.php(734):
\upload\admin\templates\start.htm
\upload\admin\templates\menu.htm

 

备案

Popularity: 33%

ecshop和discuz的2段代码

二月 24th, 2009

最近想装一下ecshop和discuz2个程序,装的时候看到2段代码
ecshop的

  1. <script type=”text/javascript” src=”http://api.ecshop.com/checkver.php?ver=<?php
  2.  echo $this->_var['ecs_version']; ?>&lang=<?php
  3.  echo $this->_var['ecs_lang']; ?>&release=<?php 
  4. echo $this->_var['ecs_release']; ?>&php_ver=<?php 
  5. echo $this->_var['sys_info']['php_ver']; ?>&mysql_ver=<?php 
  6. echo $this->_var['sys_info']['mysql_ver']; ?>&ocount=<?php 
  7. echo $this->_var['order']['stats']['oCount']; ?>&oamount=<?php
  8.  echo $this->_var['order']['stats']['oAmount']; ?>&gcount=<?php
  9.  echo $this->_var['goods']['total']; ?>&charset=<?php
  10.  echo $this->_var['ecs_charset']; ?>”></script>

discuz的

  1. <script src=”http://<?=$insenz[url]?>/news.php?id=<?=$insenz[siteid]?>&t=<?=$timestamp?>&k=<?=md5($insenz[authkey].$insenz[siteid].$timestamp.’Discuz!’)?>&insenz_version=<?=INSENZ_VERSION?>&discuz_version=<?=DISCUZ_VERSION.’ - ‘.DISCUZ_RELEASE?>&random=<?=random(4)?>
  2. type=”text/javascript” charset=”UTF-8″></script>
  3. echo ‘<sc’
  4. .'ript language=”Jav’.'aScript” src=”
  5. ht’.'tp:/’.'/cus’.'tome’.'r.disc’.'uz.n’.'et/n’
  6. .'ews’.’.p’.'hp?’.bbsinformation().’”></s’.'cri’.'pt>’;

恩,很好很强大

Popularity: 31%

google脑子进水了

一月 31st, 2009

2009年1月31号23点30分左右,想看一下网站的收录情况,一看,居然网站说“该网站可能含有恶意软件,有可能会危害您的电脑。”,换英文Google,说”This site may harm your computer.”,问别人也说看到的是同样的内容。
把我吓坏了,看别的网站,很多也有这种情况。
过了几分钟看,发现好了。
真是进水

Popularity: 25%

python版本的jquery

一月 5th, 2009

jquery在做html内容提取,分析的时候很方便。而python做类似的工作就麻烦一点,原来我都是用正则表达式或者HtmlParser的。
两者用着都不是太爽,今天发现了一个好东西 pyquery ,一个类似jquery的python库。
摘抄一段使用说明

  1. >>> from pyquery import PyQuery as pq
  2. >>> from lxml import etree
  3. >>> d = pq("<html></html>")
  4. >>> d = pq(etree.fromstring("<html></html>"))
  5. >>> d = pq(url='http://google.com/')
  6. >>> d = pq(filename=path_to_html_file)

Now d is like the $ in jquery:

  1. >>> d("#hello")
  2. [<p#hello.hello>]
  3. >>> p = d("#hello")
  4. >>> p.html()
  5. 'Hello world !'
  6. >>> p.html("you know <a href='http://python.org/'>Python</a> rocks")
  7. [<p#hello.hello>]
  8. >>> p.html()
  9. 'you know <a href="http://python.org/">Python</a> rocks'
  10. >>> p.text()
  11. 'you know Python rocks'

简单吧,安装也很简单
下载

http://pypi.python.org/packages/source/p/pyquery/pyquery-0.3.tar.gz

解压缩
python setup.py install
就可以了,可能要安装ezsetup
现在的版本是0.3,还有一些jquery的东西没有实现,比如:radio,:password,以及一些ajax的功能,但是已经够用了,强烈推荐。
赶紧试试吧。

还有一个BeautifulSoup,也推荐一下

Popularity: 42%