默认安装sqlite3
npm install sqlite3
此时node已经可以访问sqlite3了
这个时候如果启动node-webkite app 就会报找不到sqlite3

参看 https://github.com/rogerwang/node-webkit/wiki/Build-native-modules-with-nw-gyp
第一种方法没成功 最后用了0.8.6的版本(最新版本0.10.0.rc1)

$ npm install node-pre-gyp
$ node-pre-gyp build –runtime=node-webkit –target=0.8.6

如果编译成功根据说明就可以使用了 注意编译脚本记得把node_modules 整个目录打包到.nw文件里面

写了一个shell脚本来打包并执行
cd /var/www/nodeapp/node-webkit-test/app
zip -r ../app.nw *
nw ../app.nw

解决方案来源网络
解决了一个定时请求的需求,发现IE不兼容,搜索发现是IE不支持传参数

/*
|*|
|*|  IE-specific polyfill which enables the passage of arbitrary arguments to the
|*|  callback functions of javascript timers (HTML5 standard syntax).
|*|
|*|  https://developer.mozilla.org/en-US/docs/DOM/window.setInterval
|*|
|*|  Syntax:
|*|  var timeoutID = window.setTimeout(func, delay, [param1, param2, ...]);
|*|  var timeoutID = window.setTimeout(code, delay);
|*|  var intervalID = window.setInterval(func, delay[, param1, param2, ...]);
|*|  var intervalID = window.setInterval(code, delay);
|*|
*/
 
if (document.all && !window.setTimeout.isPolyfill) {
  var __nativeST__ = window.setTimeout;
  window.setTimeout = function (vCallback, nDelay /*, argumentToPass1, argumentToPass2, etc. */) {
    var aArgs = Array.prototype.slice.call(arguments, 2);
    return __nativeST__(vCallback instanceof Function ? function () {
      vCallback.apply(null, aArgs);
    } : vCallback, nDelay);
  };
  window.setTimeout.isPolyfill = true;
}
 
if (document.all && !window.setInterval.isPolyfill) {
  var __nativeSI__ = window.setInterval;
  window.setInterval = function (vCallback, nDelay /*, argumentToPass1, argumentToPass2, etc. */) {
    var aArgs = Array.prototype.slice.call(arguments, 2);
    return __nativeSI__(vCallback instanceof Function ? function () {
      vCallback.apply(null, aArgs);
    } : vCallback, nDelay);
  };
  window.setInterval.isPolyfill = true;
}

在页面应用了colorbox的弹出效果,左边菜单使用了cookie

页面正常加载,cookie使用ok,点击colorbox后 再点右边的菜单 提示$.cookie is not defined

初步跟踪下页面加载时$.cookie是一个函数 使用colorbox后 $.cookie 变成undefined,

可能是colorbox返回的时候把函数更改了或者清除了$.cookie的其他方法,改用原生JS 恢复正常!

尝试在菜单点击函数内使用动态加载JS 也宣告失败!

还不知道具体的原因,还需要跟踪下!

//返回这样格式的JSON
{"code":1,"domain":{"z29":1,"z82":1},"rule":"1","money":"10.00"}
//用data.domain.z29可以取得值 如果把z29定义成一个变量 tmpId,
//然后data.domain.tmpId就OVER了 
//修改格式成这样
{"code":1,"domain":[
           {"shopId":29,"shopOk":1},{"shopId":82,"shopOk":1}
           ],"rule":"1","money":"10.00"}
//for(var k in data.domain)用这个循环获取成功

对JSON的理解还需要加强!多多折腾!

在each里面不能用普通的$(“#xxxx yyy”)这样的方式获取子对象的内容
$(this)就是一个对象了 用find的方法就可以解决这个问题

$("#allDomain div").each(function()
{
    var domain=$(this).find("span").html();
    var objRun=$(this).find("span").next();//获取span的下一个对象
    objRun.html('run.....');
    alert(domain);
});

并不是什么技巧代码,自己写的,备用!
HTML代码部分

<ul id="mainPanel" class="ssc_tabA">
      <li class="tab1">菜单1</li>
      <li class="tab2">菜单2</li>
      <li class="tab2">菜单3</li>
      <li class="tab2">菜单4</li>
      <li class="tab2">菜单5</li>
      <li class="tab2">菜单6</li>
      <li class="tab2">菜单7</li>
      <li class="tab2">菜单8</li>
    </ul>

JQ代码部分,

$(function(){
	var old=0;
	$("#mainPanel li").click(function(){
		var newid=$(this).index();
		if(old==newid)
			return false;
		else
		{
			$("#mainPanel li").each(function(){
				$(this).attr("className","tab2");
			})
			$("#mainPanel li:eq("+newid+")").attr("className","tab1");
			old=newid;
		}
	});
});

function checkForm(frm)   
{   
  var p=/^-?d+(.d[2])?$/;   
  return p.test(frm);   
  
}
//负数、整数、和小数(2位小数) 返回true 其他返回false 
//刚刚看完正则表达书第三版

var g=Lang.parseInt(“1.03″)+””;//不加后面的+””就没值有点奇怪(“1.03″) 去掉这个双引号也没动静
var d=Lang.min(45,76.3)+””;
Dialogs.alert(g);
Dialogs.alert(d);
测试环境:m3gate

做一个弹出窗口,用来预览HTML代码

newWindow = window.open(”,’newWindow’,’height=300,width=500,scrollbars=auto,resizable=yes’);
var windowHTML= document.getElementById(‘p_code’).value;
newWindow.document.write(windowHTML);
newWindow.focus();

这个窗口没有地址,如果是纯粹的文字和图片内容,FF和IE都可以正常显示,
但是偶的是一堆JS和外部JS文件,在FF下弹出的正常,在IE下就是死都不出来,一片空白。那个晕啊。在IE下右键看编码是unicode灰色的,搜索了下document.write默认使用unicode编码,http://liuguanyu.blog.hexun.com/33438538_d.html,
document.write后加上document.charset=”gbk”;偶加了utf-8还是打开空白。在页面上点右键–选择任意编码都可以正常显示,郁闷了。折腾了半天突然发现刷新一下就可以显示了。又换了个思路,刷新这个弹出窗口。

newWindow.location.reload();

加上这句让他自动刷新一下就可以显示了。

<script LANGUAGE=”javascript”>
function checkMobile(s){
var regu =/^1(3|5)[0-9]{9}$/;
var re = new RegExp(regu);
return re.test(s);
}

function checkForm(frm)
{
  var p=/^d+$/;
  return p.test(frm);

}

function b()
{
  var a=checkMobile(‘g15809910000’);
  //var a=checkForm(‘1g23’)
  alert (a);
}
</script>

<span onclick=”b();”>ddddddddddddd</span>