应用环境:ratchet 1.0+phonegap 2.7
场景描述:两张页面A,B,B中需要调用A中head里面的lib,而由于ratchet的push引擎直接将B中的DOM加载给A,并通过历史记录更改URL。
故A与B页面的交互被push接管,直接在A中写B的调用函数无法执行。熬了几个夜之后终于找到解决方案。
1、打开ratchet.js并搜索下面这行代码
if (xhr.readyState == 4) xhr.status == 200 ? success(xhr, options) : failure(options.url);
2、将上面的代码替换为
if (xhr.readyState == 4) xhr.status == 200 || (xhr.status == 0 && options.url.indexOf('file:///') != -1) ? success(xhr, options) : failure(options.url);
保存之后,就可以在A中控制B了。