2017-02-23 38 views
0

Я использую скрипт приложений для боковой панели, чтобы вставить текст, в который я ввожу, нужно добавить некоторый текст в начале, а затем после ввода снова добавить.Передача символа новой строки как переменной для insertText в GAS

Приложенный текст будет определен текстовым полем на боковой панели.

проходит значение, как formObject

function sendform(){ 
    var f = document.forms[0].elements; 
    var data = {  "mytext": f[0].value } 
    google.script.run.withSuccessHandler(ready).withFailureHandler(onFailure).processForm(data); 
} 

Вот код приложения сценария.

function processForm(fO) 
    { 
     var body = DocumentApp.getActiveDocument().getBody(); 
     body.editAsText().insertText(0, "\n\nsometext"); 
// this will perfectly insert the newlinenewlinesometext to the document 

     body.editAsText().insertText(0, fO.mytext); 
// this will insert \n\nsometext which is wrong 
    } 

Я пробовал использовать encodeURIComponent decodeURIComponent, но все-таки его та же проблема.

Любые предложения?

ответ

1

Возможно, вы захотите сначала проверить правила, приведенные в Structure of a document, в котором вы найдете дерево, показывающее, какие текстовые элементы могут быть вставлены и какие элементы можно манипулировать только на месте.

Как уже упоминалось, служба документов в скрипте приложений может вставлять только определенные типы элементов. Если вы нашли в дереве, что вы пытаетесь вставить допустимый элемент, см. Class Text, чтобы узнать методы, которые вы можете использовать для ввода текста, например insertText(offset, text).

Вот пример кода в тексте вставки:

var body = DocumentApp.getActiveDocument().getBody(); 

// Use editAsText to obtain a single text element containing 
// all the characters in the document. 
var text = body.editAsText(); 

// Insert text at the beginning of the document. 
text.insertText(0, 'Inserted text.\n'); 

// Insert text at the end of the document. 
text.appendText('\nAppended text.'); 

// Make the first half of the document blue. 
text.setForegroundColor(0, text.getText().length/2, '#00FFFF');