解决iPad(Safari)下背景图片空白或被截断的问题

我做的一个页面中,顶部是一条100%宽的背景,CSS样式如下:

#header {
width:100%;
height: 94px;
background: url(/images/headerbg.gif);
overflow: hidden;
}

发现在iPad下右侧有些部分显示不出来,所以开始调试。
装了Windows版本的Safari测试页面后发现,初始化一个窗体宽度,然后加载页面,等到页面加载完成后再拉动水平滚动条,就会发现顶部右边的背景全变成了白色。
这个明显是Safari对背景的渲染有问题,背景的100%宽度在初始化页面时就被自动转化成固定的宽度值了,因此之后拉动滚动条,不会重新渲染。

StackOverflow上面提供了几种解决方案:
http://stackoverflow.com/questions/2966803/a-way-to-correct-background-scaling-in-ipads-safari

为了简便,我目前采取了最简单的方案,即在 body 中加入 min-width 定义:

body {
line-height: 1;
min-width:1024px;
}

— EOF —

Extjs 使用 checkboxgroup 时无法获取到 group 中控件的问题

配置如下:

{
	fieldLabel: '角色选择',
	xtype: 'checkboxgroup',
	items: [
		{boxLabel: '测试1', name: 'f1'},
		{boxLabel: '测试2', name: 'f1'},
		{boxLabel: '测试3', name: 'f3'}
	]
}

然后用 formPanel.getForm().findField(‘f1’) 获取控件 f1,返回为 null。
我用的是 Ext 3.2,好像 Ext 2 也有这个问题。

解决方法:
给 Ext 打个补丁:

Ext.override(Ext.form.BasicForm, {

    findField : function(id){
        var field = this.items.get(id);

        if(!field){
            // --------- It was: ---------
            // //Iterate through children on first level
            // this.items.each(function(f){
            //     if(f.isFormField && (f.dataIndex == id || f.id == id || f.getName() == id)){
            //         field = f;
            //         return false;
            //     }
            // });

            // --------- It is now: ---------
            // Iterate through children on all levels
            var fn = function(f) {
              if(field)
                return false;   //stop iteration, if field was found already

              if(f.isFormField && (f.dataIndex == id || f.id == id || f.getName() == id)){
                field = f;    // field was found
                return false;
              }
              else if(f.items) {
                f.items.each(fn);   // iterate through child items
              }
            }
            this.items.each(fn);
            // --------- End of my changes ---------

        }

        return field || null;
    }

});

参考这里:
http://www.extjs.com/forum/showthread.php?44199-2.2-CheckboxGroup-Struggling-with-item-search&p=209958

— EOF —

配置 UCenter Home 2.0 实现个性化二性域名

我的 UCenter Home 2.0 安装在 http://home.taounion.com/,现在准备以 *.taounion.com 作为个人主页的个性域名,如 http://hily.taounion.com/

步骤:

  1. 在域名控制面板中设置 taounion.com 的泛域名解析 *.taounion.com 到你的服务器 IP。
  2. 在 UCenter Home 后台设置中启用“二级域名功能”,并设置二级域名根域名,我的是“taounion.com”。
  3. 修改 lighttpd 的配置文件,将所有 *.taounion.com 解析到 UCenter Home 的虚拟目录中,如下:

    $HTTP["host"] =~ ".+\.taounion\.com" {
      server.document-root = "/www/ucenterhome"
      index-file.names = ("index.html", "index.php")
      fastcgi.server = (
        ".php" => ((
          "socket" => "/tmp/php-fpm.socket"
        ))
      )
      url.rewrite-once = (
        "^/(space|network)-(.+)\.html$" => "/$1.php?rewrite=$2",
        "^/(space|network)\.html$" => "/$1.php",
        "^/(\d+)$" => "/space.php?uid=$1",
        "^/([a-z0-9\-]+)$" => "/space.php?domain=$1"
      )

    }

    其中 rewrite 并不是必须的,前三条都是做页面伪静态化用的,最后一条:

    "^/([a-z0-9\-]+)$" => "/space.php?domain=$1"

    是为了个性化域名跳转后的效果更好,因为默认情况下 http://hily.taounion.com/ 会跳转到 http://home.taounion.com/space.php?domain=hily,很不简洁,我希望结果是 http://home.taounion.com/hily

  4. 配合上一步,修改 index.php 中的个性域名跳转:

    if(!isset($_GET[‘do’]) && $_SCONFIG[‘allowdomain’]) {
            $hostarr = explode(‘.’, $_SERVER[‘HTTP_HOST’]);
            $domainrootarr = explode(‘.’, $_SCONFIG[‘domainroot’]);
            if(count($hostarr) > 2 && count($hostarr) > count($domainrootarr) && $hostarr[0] != ‘www’ && !isholddomain($hostarr[0])) {
                    //showmessage(‘enter_the_space’, $_SCONFIG[‘siteallurl’].’space.php?domain=’.$hostarr[0], 0);
                    showmessage(‘enter_the_space’, $_SCONFIG[‘siteallurl’].$hostarr[0], 0);
            }
    }

  5. 重启 lighttpd,完工!

— EOF —

JS判断是页面中是否出现了滚动条

先做点儿题外话……

最近比较懒,日志基本没有更新呵呵,这篇算是应付吧。

 

判断方法:

当可视区域小于页面的实际高度时,判定为出现滚动条,即:

if (document.documentElement.clientHeight < document.documentElement.offsetHeight) scroll = true;

要使用 document.documentElement ,必须在页面头部加入声明:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

应付完毕……

貌似我的DreamHost空间要到期了,自己有服务器,就不想花钱续了。

–EOF–

信息产业部备案管理系统这几天访问不了

我是福建地区的,有时能连上,也是非常地慢,登录验证码都出不来。

怀疑是福建地区的备案主机出问题了,福州和厦门的都不能访问。

C:\>ping www.miibeian.gov.cn

Pinging www.miibeian.gov.cn [219.143.225.7] with 32 bytes of data:

Request timed out.
Reply from 219.143.225.7: bytes=32 time=270ms TTL=116
Reply from 219.143.225.7: bytes=32 time=137ms TTL=116
Request timed out.

解决办法:改 host 记录,换一台备案主机访问,我现在用的是:

211.94.161.70    www.miibeian.gov.cn

有出现访问不了信息产业部备案管理系统的朋友不妨照我的方法试试。

— EOF —