Ошибка "необходимо отсоединить элемент" в скрипте Google Docs
Когда я пытаюсь скопировать абзацы из одного документа в другой, я получаю неожиданную ошибку:
Надо отсоединить элемент
Что это значит? Что я делаю неправильно?
function test_copy_paragrahps() {
var final = 'final';
var doc1 = get_doc('', final);
var doc2 = create_doc_in_path('', final+'test');
var body1 = doc1.getBody();
var body2 = doc2.getBody();
var par1 = body1.getParagraphs();
for (var i=0;i<par1.length;i++) {
body2.insertParagraph(i, par1[i]);
}
}
вот видео http://youtu.be/1WdCD5ATiYw
PS Вы не можете упоминать о реализациях get_doc и create_doc_in_path. Оба возвращают объект Document.
1 ответ
Решение
Вы попытались вставить абзац, у которого уже есть родительское тело. Вам нужно создать отдельную копию абзаца, прежде чем вы сможете вставить его.
См. Эту часть документации, в которой упоминается отделение абзаца.
Я верю, что это исправит ошибку:
function test_copy_paragrahps() {
var final = 'final';
var doc1 = get_doc('', final);
var doc2 = create_doc_in_path('', final+'test');
var body1 = doc1.getBody();
var body2 = doc2.getBody();
var par1 = body1.getParagraphs();
for (var i=0;i<par1.length;i++) {
body2.insertParagraph(i, par1[i].copy()); //--- copy()
}
}