2014-11-06 1 views
1

Я пытаюсь обойти отсутствие API для фильтров Views Google Spreahsheet, передав URL-адрес просмотра фильтра в гиперссылку, отображаемую на боковой панели.Google Script, чтобы открыть URL-адрес в том же окне, что и электронная таблица

Важно: я хочу, чтобы URL-адрес фильтра отображал в том же окне как и, следовательно, заменил электронную таблицу. Мишень гиперссылка должна быть затем _self

function listFilterViews(){ 
    var uiInstance = UiApp.createApplication() 
     .setTitle('Teacher Views'); 
    var panel = uiInstance.createVerticalPanel(); 
    panel.setSpacing(5) 
    var scroll = uiInstance.createScrollPanel(); 
    scroll.setHeight("100%") 
    var url = "https://docs.google.com/blablabla" 
    var link = uiInstance.createAnchor("click me", url) 
    link.setTarget("_self") 
    panel.add(link); 
    scroll.add(panel) 
    uiInstance.add(scroll); 
    SpreadsheetApp.getUi().showSidebar(uiInstance); 
} 

Однако URL не открывается в том же окне, как ожидалось, но в другом окне вместо. Как я могу это исправить?

+0

Из документации: по дизайну эти гиперссылки всегда открываются на новой странице. Ссылки, которые перезагружают текущую страницу, не допускаются. –

+0

Сад. Но это стоит ответить, я верю, @Sergeinsas – Benjamin

+0

Я бы предпочел оставить его в качестве комментария, так как я не уверен, что это «действительно» невозможно ... может быть, кто-то нашел способ обойти ... Я не знаю ;-) –

ответ

0

Согласно setTarget documentation:

«(установив цель _self) будет работать только, если приложение показывается как отдельная услуга Это не будет иметь никакого эффекта при вызове в диалоге, например, в. Таблицу Google ".

Скрипт приложений преднамеренно запрещает сценариям изменять вид текущего окна в качестве меры безопасности.

Смежные вопросы