2014-06-10 4 views
0

Google 사이트 페이지에 두 개의 게시 된 웹 앱 (스크립트 1 및 스크립트 2)이 있습니다. 나는 스크립트에 링크를 만들 경우하나의 Google 사이트에 두 Google Apps 스크립트 간 통신 방법은 무엇입니까?

function doGet(requestInfo) 
{ 
    var tab = requestInfo.parameters['tab']; 
} 

: 그럼 모두 포함 된 스크립트 매개 변수를 읽을 수

https://sites.google.com/a/some.place.com/home?tab=1 

: 두 스크립트와 통신하는 가장 간단한 방법은 GET 매개 변수를 사용하여 페이지를 호출하는 것으로 보인다 1

var url = SitesApp.getActivePage().getUrl(); 
<a href='url + "?tab=1"' target="_top"> <a/> 

후, _self _parent, _top 또는 _blank에서 페이지로 펑하는 목표를 설정하여 요청 중 제 스크립트의 프레임에 장착 된 링크를 클릭 한 후 새 탭. 이상적이지 않습니다.

나는에 ScriptApp 클래스를 사용하는 경우 : 다음 링크는 스크립트 하나가 아니라 스크립트 2.

에 매개 변수를 전송 클릭 스크립트 1

var url = ScriptApp.getService().getUrl(); 
href='url + "?tab=1"'; 

사이에서 통신 할 수있는 더 좋은 방법이 있나요 사이트에 두 개의 스크립트가 포함되어 있습니까?

답변

0

실용적인 방법은 없습니다. 가스로 인한 브라우저 제한으로 인해 대상을 사용하는 첫 번째 메소드가 실패합니다. iframe은 top을 타겟팅 할 수 없습니다. 두 번째 방법은 하나의 스크립트로 만 보냅니다.

hmtService 간격 또는 uiService를 사용하여 스크립트를 항상 실행중인 상태로 유지하고 일부 공유 저장소를 계속 확인하는 것은 가능하지만 할당량 및 기타 문제가 발생합니다. 게다가 사용자/세션별로보기를 유지하려면 추가 작업이 필요합니다.

+0

내 두려움을 확인해 주셔서 감사합니다. 어떤 브라우저 제한으로 iframe의 링크가 _top을 타겟팅하지 못하게합니까? 이 작은 덩어리로 인해 이것이 가스 문제라고 생각하게됩니다. [link] (https://developers.google.com/apps-script/guides/html/restrictions#anchor_tags) – user3726809