この質問は、Webアプリケーションへのクロス投稿されました:それはENTERというタイトルであなたはボタンを見ることができます https://docs.google.com/document/d/1TgzOIq0g4DyDefmJIEnqycDITIx_2GNQkpdxMGwtqB8/edit?usp=sharing変更]リンクは
:Help me find my Element in a Google Doc so I can act on it in script?ここ
は私のGoogleドキュメントでありますNEW NOTE。
私は、テーブルを見つけ出し、必要に応じてそれらの領域のtxtを置き換えるために、ドキュメントの要素を順調に進んできました。しかし、ここのボタンはURLを変更する必要があり、どのように行うのかわかりません。
このURLはアイデアを示しているようですが、わかりませんので、私はそれを私の答えにすることはできません。 Mail merge: can't append images from template
要素についての多くの例を編集しようとしたので、誰かが実際のコードを表示するのを手伝ってくれるだろうか?setURLを見て、親を探すなど。
私はGoogleシートからスクリプトをGoogle Docsの束の上のwokに呼びます。 (私はそれがURLを交換だ持っている次のドキュメントのURLのを取得するためにスプレッドシートを走ることになる
ここで私は私が得ていると考えているほど近いです。ここ
function getDocElements() {
var doc = DocumentApp.openByUrl("https://docs.google.com/document/d/1TgzOIq0g4DyDefmJIEnqycDITIx_2GNQkpdxMGwtqB8/edit?usp=sharing"),
body = doc.getBody(),
numElements = doc.getNumChildren(),
elements = [];
for (var i = 0; i < numElements; ++i){
var element = doc.getChild(i),
type = element.getType();
// daURL = element.getURL();
// Look for child elements within the paragraph. Inline Drawings are children.
// if(element.asParagraph().getNumChildren() !=0 && element.asParagraph().getChild(0).getType() == DocumentApp.ElementType.INLINE_DRAWING) {
var drawingRange = body.findElement(DocumentApp.ElementType.INLINE_DRAWING);
while (drawingRange != null) {
var element = drawingRange.getElement();
var drawingElement = element.asInlineDrawing();
//drawingElement.removeFromParent();
drawingElement.setURL("http://www.google.com");
drawingRange = body.findElement(DocumentApp.ElementType.INLINE_DRAWING);
}
// For whatever reason, drawings don't have their own methods in the InlineDrawing class. This bit copies and adds it to the bottom of the doc.
//var drawing = element.asParagraph().copy();
//body.appendParagraph(drawing);
}
Logger.log(i + " : "+type);
}
はその番組私の最新の繰り返しですログに私が変更したいinLineDrawing ...
===========を含む要素は、
function getDocElement() {
var doc = DocumentApp.openByUrl("https://docs.google.com/document/d/1TgzOIq0g4DyDefmJIEnqycDITIx_2GNQkpdxMGwtqB8/edit?usp=sharing"),
body = doc.getBody(),
numElements = doc.getNumChildren(),
elements = [];
for (var i = 0; i < numElements; ++i){
var element = doc.getChild(i),
type = element.getType();
// daURL = element.getURL();
Logger.log(i + " : " + numElements + " : "+ type + " " + element);
// Search through the page elements. Paragraphs are top-level, which is why I start with those.
if(type == DocumentApp.ElementType.PARAGRAPH){
// Look for child elements within the paragraph. Inline Drawings are children.
if(element.asParagraph().getNumChildren() !=0 && element.asParagraph().getChild(0).getType() == DocumentApp.ElementType.INLINE_DRAWING) {
//element.getParent().setLinkUrl("http://www.google.com");
Logger.log(element.asParagraph().getChild(0).getType() + " : " + element.getAttributes());
// For whatever reason, drawings don't have their own methods in the InlineDrawing class. This bit copies and adds it to the bottom of the doc.
var drawing = element.asParagraph().copy();
//body.appendParagraph(drawing);
// body.appendParagraph();
if(element.getParent() !=''){
//element.asParagraph().appendHorizontalRule();
//element.editAsText().appendText("text");
// element.getParent().insertHorizontalRule(0);
}
}
}
}
}
最終的に、各docのURLボタンをスプレッドシートから取得する新しいURLに変更する必要があります。 –
関連:http://stackoverflow.com/questions/34983060/google-script-inlinedrawing-class –