#javascript #html #dom #google-apps-script #google-sheets
#javascript #HTML #dom #google-apps-script #google-sheets
Вопрос:
Хотите передать «идентификатор элемента» предыдущего элемента, чтобы он стал «внутренним текстом» текущего элемента при запуске / загрузке. Я не знаю. Дело в том, что он должен быть загружен или запущен с самого начала, когда я нажал, чтобы открыть всплывающее окно. Не спрашивайте, почему, но условие заставляет меня достичь этого. Послушайте, я постараюсь описать это как можно яснее, надеюсь, вы легко поймете.
сначала я создаю код некоторой строки в файле .gs (GAS). тропинка была похожа на эту:
======================= Сервер на стороне клиента в файле gs =======================
.....
var s = SpreadsheetApp,
ss = s.getActiveSpreadsheet(),
sss = ss.getSheets();
.....
for (var i=0, iLen=sss.length; i<iLen; i ) {
result = "<tr>";
result = "<td id='" sss[i].getName().replace(/(/g,'<').replace(/)/g,'>') "'></td>";
result = "<td contentEditable='true' onLoad='this.innerText=this.previousElementSibling.id'></td>";
result = "<td>X</td>";
result = "</tr>";
.....
Теперь путь, который я имею в виду, находится в «onLoad =’this.innerText=this.previousElementSibling.id ‘«. это не работает. Что мне делать с этим? потому что, если я добавлю код, подобный этому «…>» sss[i].getName().replace(/(/g,'<‘).replace(/)/g,’>’) «</ td>«, там будут ошибки.
и я также прилагаю рисунок, чтобы дать больше объяснений. Пожалуйста, немного облегчите для меня, и любая помощь будет очень признательна, и извините, что мой ввод (английский) не очень хорош.
Комментарии:
1. К сожалению, 1-й столбец и 3-й столбец были скрыты строкой CSS, так что это просто путь к примеру, который я должен был кратко описать. Проблема всегда возникает после того, как я добавляю циклическое имя листов, а затем обычно отображаю имя каждого из них полностью, поэтому я хочу создать это другим способом. Кто-нибудь, кто может сказать, почему и как это решить?
2. Нет, я должен извиниться, потому что мой английский тоже. ну, я пытаюсь на них ответить. 1. Я хочу отображать имена загружаемых листов при запуске, когда открыто всплывающее окно. 2. это не работает, потому что все равно ничего не происходит. результата нет. его пустое имя cames out (ноль ничего не значит). 3. будут ошибки, если я помещу другой код моего достижения в любую строку в <td ……>» sss[i].getName().replace(/(/g,'<‘).replace(/)/g,’>’) «</td> смотрит на мой рисунок, который я прикрепил.
3. Спасибо за ваш быстрый ответ. Из вашего ответа я понял, что вы хотите получить имена листов и поместить их в таблицу HTML в диалоговом окне электронной таблицы. Правильно ли я понимаю? Если я правильно понимаю, что касается имен листов, существуют ли ограничения, которые вы хотите указать?
4. Да, вы правы @Tanaike. Рад слышать, что вы это поняли. И да, я хочу дать некоторые правила или шаблон, заменив скобку («(» и «)») на меньшую, чем знак «<«, и большую, чем знак «>».
5. Спасибо за ответ. Я должен снова извиниться за свое плохое знание английского языка. К сожалению, я не смог понять ваш ответ. Теперь у меня есть 3 вопроса. 1. Из вашего образца изображения, примерно
(DBS)
, что вы хотите сделать? 2. AboutAnd Yes I want to give some rules or pattern by replacement of bracket("(" and ")") by less then sign "<" and greater then sign ">".
., can I ask you about the detail of it? 3.
<td>X</td>` ispath of name
? Если это так, могу я спросить вас оpath of name
?
Ответ №1:
Мне жаль, что мне потребовалось так много времени, чтобы решить это самостоятельно. Я не мог бы использовать атрибут onload through для элемента. Однако я использую window.onload и помещаю этот код непосредственно в тег скрипта вместо него, и это работает очень хорошо, и все в порядке, потому что все имена оказались такими, как я ожидал. Смотрите ниже мой ожидаемый результат:
=============================== И код был: ============================
.....
var s = SpreadsheetApp,
ss = s.getActiveSpreadsheet(),
sss = ss.getSheets(),
result = "<head><script type='text/javascript'>function swapNme() {",
result = "var trs = document.querySelectorAll('tr');",
result = " for (var i=0, iLen=trs.length; i<iLen; i ) {",
result = " trs[i].children[1].innerText = trs[i].children[0].id;",
result = " };",
result = " };",
result = "window.onload=swapNme;",
.....
result = "</script></head><table>";
.....
for (var i=0, iLen=sss.length; i<iLen; i ) {
var result = "<tr>";
result = "<td id='" sss[i].getName().replace(/(/g,'<').replace(/)/g,'>') "' class='hidden'></td>";
result = "<td contentEditable='true'></td>";
result = "<td class='hidden'>X</td>";
result = "</tr>";
.....