翻译后再手动对某些元素节点翻译

页面正常加载,在执行完 translate.execute() 后,页面也就翻译完了。
但是有些情况是,页面加载完后,比如随着页面下滑的过程中,可能当前页面是一个数据列表,随着下滑,会进行瀑布流加载,当然瀑布流加载这种ajax动态加载可以提前使用 translate.request.listener.start();translate.listener.start(); 设置来自动监控网页元素变化来自动触发翻译,这两种它的本质也是监控变化部分的元素节点,将变化的元素节点筛选出来,会形成一个数组形态,如

  1. [
  2. node1,
  3. node2,
  4. node3
  5. ]

然后将这个数组形态传入

  1. translate.execute(变动的元素节点的数组);

从而进行对变化的元素节点进行增量翻译。
另外一个场景是,如果你想做只对当前屏幕所显示的节点进行翻译,那么就完全可以利用此来进行,首先获取当前屏幕所显示的元素或节点,然后将获取到的数组集合传入进行翻译。 当屏幕滚动时,滚动结束后再获取当前屏幕所显示的元素节点,在用这个方法传入进行翻译。
这里提供一个示例:

  1. var eles = [
  2. document.getElementById('a'),
  3. document.getElementById('b'),
  4. document.getElementById('c'),
  5. ];
  6. translate.execute(eles);

这里传入的 eles 它可以是元素的集合,也可以是节点的集合。

(其实这个得设置跟 translate.setDocuments(documents); 的原理是相似的)