Я считаю вашей целью следующее.
- Q1. Вы хотите знать причину проблемы с вашим скриптом.
- Q2. Вы хотите удалить все гиперссылки на слайде в Google Slides с помощью Google Apps Script.
Для этого, как насчет этого ответа?
A1:
In ваш скрипт setLinkUrl(null)
используется для удаления ссылки. Это причина вашей проблемы. В этом случае используйте removeLink()
вместо setLinkUrl(null)
. Ref
A2:
В вашем скрипте вы пытаетесь удалить 1-ю гиперссылку текста в 1-й фигуре на 1-й странице. Это причина вашей проблемы. Чтобы удалить все гиперссылки на слайде в Google Slides, как насчет следующего примера сценария?
Пример сценария:
function myFunction() {
const slides = SlidesApp.openById("###").getSlides(); // Please set the Slides ID.
const otherTypes = {"IMAGE": "asImage", "LINE": "asLine", "SHEETS_CHART": "asSheetsChart", "WORD_ART": "asWordArt"};
const slide = slides[0];
slide.getPageElements().forEach(e => {
const type = e.getPageElementType();
if (type == SlidesApp.PageElementType.SHAPE) {
const shape = e.asShape();
shape.removeLink();
shape.getText().getLinks().forEach(l => l.getTextStyle().removeLink());
} else if (type == SlidesApp.PageElementType.TABLE) {
const table = e.asTable();
const rows = table.getNumRows();
const cols = table.getNumColumns();
for (let r = 0; r < rows; r++) {
for (let c = 0; c < cols; c++) {
table.getCell(r, c).getText().getLinks().forEach(l => l.getTextStyle().removeLink());
}
}
} else {
if (type in otherTypes) e[otherTypes[type]]().removeLink();
}
});
}
- Если вы используете сценарий, привязанный к контейнеру в Google Slides вы также можете использовать
SlidesApp.getActivePresentation().getSlides()
вместо const slides = SlidesApp.openById("###").getSlides()
. - В этом примере сценария все гиперссылки на все тексты и все объекты на 1-м слайде в Google Slides удаляются. Тексты в форме и таблицах удаляются.
Примечание:
- Используйте этот скрипт с V8.
Если вы хотите Удалите все гиперссылки во всех слайдах в Google Slides, вы можете использовать следующий скрипт.
function myFunction() {
const slides = SlidesApp.openById("###").getSlides(); // Please set the Slides ID.
const otherTypes = {"IMAGE": "asImage", "LINE": "asLine", "SHEETS_CHART": "asSheetsChart", "WORD_ART": "asWordArt"};
slides.forEach(s => {
s.getPageElements().forEach(e => {
const type = e.getPageElementType();
if (type == SlidesApp.PageElementType.SHAPE) {
const shape = e.asShape();
shape.removeLink();
shape.getText().getLinks().forEach(l => l.getTextStyle().removeLink());
} else if (type == SlidesApp.PageElementType.TABLE) {
const table = e.asTable();
const rows = table.getNumRows();
const cols = table.getNumColumns();
for (let r = 0; r < rows; r++) {
for (let c = 0; c < cols; c++) {
table.getCell(r, c).getText().getLinks().forEach(l => l.getTextStyle().removeLink());
}
}
} else {
if (type in otherTypes) e[otherTypes[type]]().removeLink();
}
});
});
}
Ссылки: