2014年7月

在使用 Google Closure Library 时,要注意一点。 goog.require() 所请求的内容,不能被同一个 script 标签内的 js 代码所使用,例如下面这种做法就是错误的

<script src="closure-library/closure/goog/base.js"></script>
<script>
// 不要这样写
goog.require('goog.dom');
var newHeader = goog.dom.createDom('h1');
</script>

如果你这样做,会有一个 cannot read property 'xxx' of undefined 类似的错误。除非 goog.dom.createDom() 在此前已经被请求,不然是无法使用它的。 正确的做法是这样:

<script src="closure-library/closure/goog/base.js"></script>
<script>
goog.require('goog.dom');
</script>
<script>
var newHeader = goog.dom.createDom('h1');
</script>

也可以这样

goog.require('goog.dom');
function sayHi() {
 var newHeader = goog.dom.createDom('h1', {'style': 'background-color:#EEE'},
 'Hello world!');
 goog.dom.appendChild(document.body, newHeader);
}

这样的话,只需要在其他 script 标签或者文件中调用 sayHi() 函数即可。 参考 Getting Started with the Closure Library

ubuntu 中文本地化之后,默认安装了两个字体 arphic-ukai 和 arphic-uming,导致默认中文字体非常难看,没有很好的渲染,卸载这两个字体就可以改善中文字体效果。

sudo apt-get remove fonts-arphic-ukai fonts-arphic-uming