Skip to content

调试技巧

日志调试

每个函数入口和关键节点都应添加日志:

js
function search(keyword, page) {
  legado.log('[search] keyword=' + keyword + ' page=' + page);

  var url = BASE + '/search?q=' + encodeURIComponent(keyword);
  legado.log('[search] url=' + url);

  var html = legado.http.get(url);
  legado.log('[search] html.length=' + html.length);

  var doc = legado.dom.parse(html);
  var items = legado.dom.selectAll(doc, '.book-item');
  legado.log('[search] found=' + items.length + ' items');

  // ...
}

常见问题诊断

现象可能原因解决方案
found=0选择器不匹配打印 HTML 片段检查实际结构
字段为空属性名不对尝试 data-src / data-original 等变体
目录倒序网站默认倒序添加 chapters.reverse()
目录混入杂链选择器过宽缩窄选择器范围或添加 URL 过滤
搜索乱码编码问题使用 legado.urlEncodeCharset(keyword, 'gbk')
请求超时网站响应慢检查 URL 是否可访问

打印局部 HTML

当选择器不工作时,打印容器的 HTML 帮助分析:

js
var container = legado.dom.select(doc, '#main');
if (container) {
  legado.log('[debug] container html=' + legado.dom.html(container).substring(0, 500));
} else {
  legado.log('[debug] #main not found, trying body...');
  legado.log('[debug] body html=' + legado.dom.html(doc).substring(0, 500));
}

GUI 调试面板

在应用内,进入「书源管理 → 调试」标签页,可以:

  • 执行任意 JS 代码片段
  • 查看实时日志输出
  • 可视化查看请求和响应

浏览器探测调试

在「设置 → 网络 → 浏览器探测」中开启「调试:强制显示隐藏窗口」,可以看到探测 WebView 的实际页面内容,便于观察 JS 渲染、跳转和验证码流程。

HTTP 请求调试

js
function debugGet(url) {
  legado.log('[GET] ' + url);
  try {
    var resp = legado.http.get(url);
    legado.log('[RSP] length=' + resp.length + ' preview=' + resp.substring(0, 200));
    return resp;
  } catch (e) {
    legado.log('[ERR] ' + e.message);
    throw e;
  }
}

基于 MIT 许可发布