2014-06-12 1 views
0

Google 서버용 인터페이스를 제공하는 Google 스프레드 시트 용 Google Aops 스크립트가 있습니다.Google Apps Script에서 데이터를 업로드하고 나중에 새 탭을 열 수있는 방법이 있습니까?

선택한 데이터를 내보내고 서버에서 새 브라우저 탭을 열어야합니다.

현재 Google에는 사이드 바에 GAS의 처리기가있는 버튼이 있습니다. 이 핸들러는 (urlfetch를 통해) 데이터를 내보내고 ui에 앵커 (버튼으로 스타일 지정)를 추가합니다. 이 앵커는 사용자가 서버를 누르면 새 탭을 엽니 다.

사용자 작업없이 GAS 처리기에서 새 탭을 직접 열 수 있습니까?

답변

1

아니요, 처리기에서 새 탭을 열 수 없습니다. 탭은 사용자가 기꺼이 앵커를 클릭하는 경우에만 열리 며 그 주위는 Apps Script 팀의 보안 문제로 간주됩니다.

그러나 앵커에 핸들러를 추가하고 사용자가 새 탭으로 이동하는 동안 클릭을 처리 할 수 ​​있습니다. 나는 이것이 당신을 위해 일할 것이라는 점을 확신하지 못합니다. 타겟 서버를 제어 할 수 있다면 스피너 등을 추가하고 Apps Script 백엔드가 데이터를 전송할 때까지 사용자가 조금 기다리게 할 수 있습니다.

다음은 UiApp을 사용한 구현이며 잠시 전에 작성한 library입니다.

function linkAndHandler() { 
    var app = UI.newApp('Link And Handler Test'); 
    UI.app.add(UI.lockAction(UI.anchor('Google.com', 'https://google.com'), 'linkHandler')); 
    SpreadsheetApp.getActive().show(UI.finish()); 
} 

function linkHandler() { 
    UI.app.add(UI.label('handler ran')); 
} 
관련 문제