对于Google文档中的换行选择,getRangeElements()返回0

时间:2016-07-05 11:10:13

标签: google-apps-script google-docs google-docs-api

如果在文档中选择了21个段落中的20个换行符(仅选择了换行符),则下面的代码应该将长度设置为20,而不是它给出0,我出错的地方? Screenshot attached

selectnewlines();
var selection = DocumentApp.getActiveDocument().getSelection();
showAlert(selection.getRangeElements().length);

if (selection) {
    showAlert('there is selection');
    var elts = selection.getRangeElements();
    showAlert(elts.length);
    for (var i = elts.length - 1; i >= 0; i--) {
        var elt = elts[i];
        if (elt.getElement().editAsText) {
            var txt = elt.getElement().editAsText();
            //if (elt.isPartial()) {
            txt.deleteText(elt.getStartOffset(), elt.getEndOffsetInclusive());
            // }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我认为问题在于换行实际上不是字符,所以它们不能成为选择中的元素。当我在if语句中使用Logger.log('text')运行脚本时,我得不到结果,这意味着脚本不会将换行视为选择。如果这是正确的,那么你得到的长度就是0。

我写了一个处理换行符的附加组件,所以如果你让我知道你想要对你选择的新行做什么,我可能会告诉你如何去做。例如,您是否只想计算较长文本选择中的换行数?