首页 > 解决方案 > 更改语言后自动刷新 onOpen()。由 html-sidebar 和 Library 复杂化

问题描述

我的 (Google Apps Script) addon-meny 将其菜单分为两部分:一部分 (addSharedMenu) 在共享库中,一部分是特定于环境的功能;文档,表格,幻灯片..

语言是一个用户属性,它通过共享菜单功能进行更新。它会打开一个更新语言属性的侧边栏。有用。

语言更新后,我想用新语言刷新菜单。我无法让我的库函数访问/刷新 onOpen。我能做的最好的事情是添加一个额外的替代品来提神。

// opAddonShared is name of Library
function onOpen(e) {  // Runs in a Spreadsheet (docs, slide .. have different unique functions)
  var ui = SpreadsheetApp.getUi();
  var menu = ui.createAddonMenu();
  let lang = opAddonShared.getLanguage()

  menu.addItem(menuPasswordColumn_(lang),  'makePasswordColumn')
  menu.addItem(menuClearEmptyCells_(lang),  'removeEmpty')
  opAddonShared.addSharedMenu(ui, menu).addToUi() 
}

function addSharedMenu (ui, menu) {  // Runs in Library: opAddonShared
  let lang = getLanguage()
  menu.addSeparator();
  menu.addItem(menuReload_(lang), 'onOpen');
  menu.addItem(menuLanguage_(lang), 'opAddonShared.languageDialog');
  return menu
}

标签: google-apps-scriptshared-libraries

解决方案


我认为您最好的选择是在选择自定义菜单后通过警报告诉用户刷新浏览器选项卡。因为对跨域帧的访问被阻止了。


推荐阅读