让IE6/7/8支持CSS3 media print(Media Queries)打印样式

某个项目需要支持打印样式,测试下来Chrome和FireFox正常,唯独IE8无法应用打印样式,也就是说识别不了 @media 定义的CSS样式节。

网上解决的办法也五花八门,我在这里整理一下,首先我们还是要从让IE支持media的的思路开始,首先JavaScript大将出马。

1. 项目css3-mediaqueries-js

该项目由Wouter van der Graaf发起( 项目地址 ),旨在为了提供对于类似于 IE 5+ Firefox 1+ Safari 2 低版本浏览器的Media Queries支持,使用方式也很简单,直接引用脚本即可,当然现在基本上非IE的浏览器和IE9及以上版本已经原生支持Media Queries了,所以我们可以使用IE特有的条件注释处理代码引用,比如下面的代码示例:

Posted in:
  • 前端开发与用户体验
  • Web开发及相关
Tagged
  • 浏览器兼容
  • css
  • ie浏览器
  • 文档打印

PHPWord解决中文乱码并导出生成Word2007(docx)格式文档

最近一个项目开发要用到PHP技术导出Word文档,比较了几种方案,首先是使用Microsoft Office自带的ActiveX/COM组件,比如 Word.Application ,这种方式的优点是格式兼容度高,可以生成纯doc的Word2003格式文档,缺点一是比较占资源(调用会启动一个WINWORD.EXE进程),不适合Web多用户访问使用;二是PHP这种Web开发技术大多数是跑在Linux服务器上,当然也就无法使用Windows下的技术了,平台可移植和兼容性不好。第二种生成Word的方案是生成Word兼容的网页格式,然后以Word方式打开,这种方案总体上感觉怪怪的,毕竟文件格式是HTML的,而且格式兼容度不好,不过这种方式的优点是节省服务器资源,能够快速生成;最后一种方案也就是今天的主角,采用PHPWord生成Word2007(docx)格式的文档,现在基本上微软Office Word 2003以后的版本均兼容这种格式了,对于2003版本来说,仅需要下载安装个兼容格式包( 下载地址 ),也能正常打开这类文件,当然如果你使用的是最新版本的Office(包括但不限于Office 2007、Office 2010)则不需要安装此格式包。

Posted in:
  • 网络编程与数据库
  • Web开发及相关
Tagged
  • php
  • word

树莓派Raspberry Pi备份SD卡系统、浏览挂载IMG分区镜像文件

还记得是两年前图个新鲜买的树莓派,现在基本上用来练手Linux操作,其实更有看头的GPIO功能一直没有很好的去专研,现在的Raspberry Pi已经基本被我配置为一个小的无线路由。树莓派一个最方便的地方就是可拆卸的存储设备(SD卡)和无BIOS的那种纯粹SD卡系统引导,这样我们可以配置多种功能的SD卡,需要哪种功能直接把相应的SD卡插入即可,有点商业头脑的兴许还可以把自己专有的软件固化到SD卡中,再拿去卖给有需要的树莓派用户们。

好了,扯了这么多,其实要发挥树莓派最大的功能,系统配置是必不可少的,从写入镜像到后面的配置和大量软件包的 apt-get install 以及忍受其慢吞吞的软件编译速度而编译好的软件,我们向树莓派倾入了大量的感情。假如有一天存储这一切的SD卡见上帝了的话,那可真叫欲哭无泪了。所以今天主要介绍的是对于存在于SD卡中的操作系统的备份。

Posted in:
  • 计算机应用及维护
  • Unix/Linux/BSD系统
Tagged
  • RaspberryPi
  • 数据备份

CMD或BAT批处理/VBScript批量复制安装字体文件脚本

根据新系统要求,经常要部署一些原来系统里没有的字体,原先我为了图省事经常会要求用户手动安装字体文件,虽然Windows的易用性做得相当不错,但是仍然要照顾一些不会安装字体的人,其实把这些字体打包进安装包更为方便,不过我觉得总不能每有新字体都要搞个安装包那么麻烦吧。更重要的是仍然有人会问我字体怎么安装,以前清一色的Windows XP系统,我倒也方便,直接告知打开控制面板找到字体文件夹,把要安装的字体拖进去即可;现在有Windows 7还是Windows 8等各种版本Windows系统,对于安装字体这个小小操作我也开始分情况讨论了。

使用特殊文件夹或者Desktop.ini方法

使用特殊文件夹方法

Windows保留了一种特殊文件夹引用,比如在Windows XP的情况下,新建一个文件夹,然后在文件夹重命名后缀 .{645FF040-5081-101B-9F08-00AA002F954E} (注意以点号分隔),然后这个文件夹就变成了回收站的一个引用,当我们点击进去的时候实际上进去的是回收站。

Posted in:
  • VBScript/JavaScript/Python
  • 系统应用程序开发
Tagged
  • vbscript
  • Windows批处理

解决Google(谷歌)服务不可用导致WordPress后台缓慢的问题

因为某些原因近期Google的大部分服务无法使用,特别是谷歌字体和一些公共库的调用问题,因为浏览器加载这些资源多是阻塞形式的,如果不能及时获取资源,那么浏览器将一直在等待,这样就会影响页面其他元素的渲染,对于用户来说,就会表现为页面加载缓慢或者打开困难。

因为我的博客之前调用了Google的字体服务,所以前一段时间打开页面时出现了这类现象,通过FireBug调试找到是Google字体的原因。搜索网络后找到了替代的办法,那就是使用 360提供的前端公共库CDN服务缓存库

这些公共库主要分为: 常用前端公共库 Google前端公共库 Google免费字体库

Posted in:
  • 前端开发与用户体验
  • Web开发及相关
Tagged
  • 网站维护
  • 网站优化
  • wordpress
  • Google

PHP设置会话(Session)超时过期时间实现登录时间限制

最近某个PHP项目用到了限制登录时间的功能,比如用户登录系统60分钟后如果没有操作就自动退出,我搜索了网络收集了有以下方法可供参考。

第一种方法即设置 php.ini 配置文件,设置 session.gc_maxlifetime session.cookie_lifetime 节点属性值,当然也可以使用 ini_set 函数改变当前上下文环境的属性值:

ini_set('session.gc_maxlifetime', "3600"); // 秒
ini_set("session.cookie_lifetime","3600"); // 秒

第二种方法即设置Session时间戳,比如下面的办法。

Posted in:
  • 网络编程与数据库
  • Web开发及相关
Tagged
  • php
  • php配置
  • session

JavaScript/JQuery优雅的屏蔽网页鼠标右键菜单及禁止选择复制

我记得在刚开始接触动态HTML及JavaScript时就接触过关于鼠标右键屏蔽的脚本代码,当时这些代码很多会用在防止浏览者未经允许的复制网页上的文字或者其他内容,后来的实际应用证明这种做法是不符合用户体验的,而且破解的方法也有很多,比如我曾经写过 一篇文章 讲解如何解除网页禁止复制的办法。

由此可见,限制右键及复制是不明智的做法,但是今天我仍然要谈谈关于禁止网页复制、右键菜单的事儿,因为随着网页APP技术的发展,网页应用和桌面应用之间的界限越来越模糊,有一些桌面程序实际上是由网页配合JavaScript实现的,另外一些手机应用也可以是由HTML5+JavaScript实现的,在这种情形下,限制右键就是有必要的了,因为作为APP来说,网页的右键选择文字及弹出菜单在大多数情况下显得没有必要了。

Posted in:
  • 前端开发与用户体验
  • Web开发及相关
Tagged
  • javascript
  • 用户体验
  • jquery
  • 移动开发

MySQL TIMESTAMP column with CURRENT_TIMESTAMP

在部署程序时遇到的一个问题,MySQL定义举例如下:

CREATE TABLE `example` (
  `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  `created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `lastUpdated` TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;

这段SQL是我从项目中摘取出来的,在测试机器上一切正常,但是部署到生产机器上MySQL报错:

ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause.
Posted in:
  • 网络编程与数据库
  • Web开发及相关
Tagged
  • mysql
  • 日期时间

树莓派Raspberry Pi用AirPlay播放实现WiFi连无线音响外放

之前 有一篇文章 介绍了如何使用蓝牙实现手机连接无线音箱外放,在网上搜索相关资料的过程中,我发现了树莓派另外一个强大的功能,那就是可以实现苹果(Apple)的AirPlay播放技术,简单的介绍一下,AirPlay类似于蓝牙音响播放,但是其是建立在WiFi局域网基础上的,在接入有AirPlay播放技术的局域网上,苹果的设备就会显示支持AirPlay。综合AirPlay的优势,我开始在Raspberry Pi(树莓派)上实现相关功能。

同样的,关于树莓派一些好玩的功能国外资料较为丰富,经过查阅后 《Raspberry Pi Airplay Tutorial》 (原文超级详细)这一篇文章对我帮助较大,具体步骤如下。

Posted in:
  • 计算机应用及维护
  • Unix/Linux/BSD系统
Tagged
  • Linux
  • debian
  • RaspberryPi
  • 无线WiFi
  • AirPlay

树莓派Raspberry Pi用蓝牙(Bluetooth)实现手机连无线音响外放

今天琢磨着如何在树莓派上挖掘出一些新玩意儿,正好上次为了试验iBeacon低功耗蓝牙基站买的一块USB蓝牙接收适配器一直闲在那儿,于是准备依托于蓝牙功能实现一些有意思的功能。

首先想到的是文件共享,蓝牙这货一开始基本功能也是文件共享吧,想到以前智能手机并不普及的年代,我曾经试验过通过拍照蓝牙传输聊天的功能,那时候想如果能通过蓝牙进行文本传输基本上就实现了一个小型聊天室了,好了,扯远了,我手边有部iPhone,据说未越狱的iPhone蓝牙传文件功能一直是短板,不知道为什么苹果要限制其蓝牙功能,折腾了许久文件传输一直未能实现,于是决定转战另外的功能。

我注意到iPhone手机可以任意的连接蓝牙耳机,也就是说可以轻松实现蓝牙的音频传送,同时在Raspberry Pi主板上有个音频输出接口,正好家里有闲置的笔记本USB Mini音箱,于是我决定将树莓派变成蓝牙多媒体播放中心。

Posted in:
  • 计算机应用及维护
  • Unix/Linux/BSD系统
Tagged
  • Linux
  • debian
  • RaspberryPi
  • 蓝牙

© Wang Ye / 王 晔. All rights reserved.