翻译后再手动对某些元素节点翻译
页面正常加载,在执行完 translate.execute() 后,页面也就翻译完了。
但是有些情况是,页面加载完后,比如随着页面下滑的过程中,可能当前页面是一个数据列表,随着下滑,会进行瀑布流加载,当然瀑布流加载这种ajax动态加载可以提前使用 translate.request.listener.start(); 、 translate.listener.start(); 设置来自动监控网页元素变化来自动触发翻译,这两种它的本质也是监控变化部分的元素节点,将变化的元素节点筛选出来,会形成一个数组形态,如
[
node1,
node2,
node3
]
然后将这个数组形态传入
translate.execute(变动的元素节点的数组);
从而进行对变化的元素节点进行增量翻译。
另外一个场景是,如果你想做只对当前屏幕所显示的节点进行翻译,那么就完全可以利用此来进行,首先获取当前屏幕所显示的元素或节点,然后将获取到的数组集合传入进行翻译。 当屏幕滚动时,滚动结束后再获取当前屏幕所显示的元素节点,在用这个方法传入进行翻译。
这里提供一个示例:
var eles = [
document.getElementById('a'),
document.getElementById('b'),
document.getElementById('c'),
];
translate.execute(eles);
这里传入的 eles 它可以是元素的集合,也可以是节点的集合。
(其实这个得设置跟 translate.setDocuments(documents); 的原理是相似的)