2013-02-01 3 views
0

'Defining Spreadsheet Menus'자습서의 내용대로 처리하고 있습니다. 메뉴는 onOpen 이벤트 핸들러를 사용하여 수정됩니다.Google 스프레드 시트 - onOpen이 실행되지 않기 때문에 맞춤 메뉴가로드되지 않습니다.

'Script Gallery'에서이 'Text to Columns'스크립트를 공개적으로 사용할 수있게 만들었지 만 커스텀 메뉴가 팝업되는 데 오랜 시간이 걸리면 다운로드하는 사용자가 혼란 스러울 수 있습니다.

스크립트를 처음으로로드하는 것이 고통 스럽습니다. 대부분의 경우 onOpen 트리거는 모두 누락되었습니다. onOpen 트리거를 수동으로 재설정하면 트리거가 올바르게 설정되지 않아 트리거가 올바르게 설정되지 않은 것처럼 보입니다.

개인적으로는 약간의 성가심이라고 생각하지만 공유 스크립트에서는 지원 문제가됩니다.

참고 : 이후의 모든로드는 정상적으로 나타나지만 이상적인 것으로부터 멀어 지려면 약 7 초 정도 걸립니다.

function onOpen() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var menuEntries = []; 
    menuEntries.push({ name:"Text to columns", functionName:"textToColumns" }); 
    menuEntries.push({ name:"Text to columns (custom separator)", functionName:"textToColumnsCustom" }); 
    menuEntries.push(null); 
    menuEntries.push({ name:"Columns to Text", functionName:"columnsToText" }); 
    menuEntries.push({ name:"Columns to Text (custom separator)", functionName:"columnsToTextCustom" }); 
    ss.addMenu("Advanced", menuEntries); 
} 

참고 :

은 여기으로 onOpen 핸들러의이 단 하나의 사용자와 새로운 (즉, 빈) 스프레드 시트에서 테스트되었다.

+0

onOpen에서 거의 없거나 적은 항목으로 메뉴를 만든 다음 [new 상대 시간 트리거] (https://developers.google.com/apps-script/class_clocktriggerbuilder#after)를 사용하여 다른 기능으로 메뉴를 추가 항목으로 업데이트 할 수 있습니까? – Mogsdad

+0

흥미 롭다. –

+0

@Mogsdad 시간을 방아쇠를 당길 수있는 횟수에 대한 할당량이 있고 이는 공개적으로 공유 된 스크립트이기 때문에 일부 독서를 했으므로 문제가 더 복잡해 질 수 있습니다. 문제는 초기로드 문제가 스크립트가 onOpen을 트리거하지 못해 발생했기 때문입니다. 스크립트에 onOpen 트리거를 수동으로 추가하여 작업 할 수 있습니다. 후속 적재 시간에 관해서는, 7 초가 일관된 표준으로 보입니다. –

답변

0

확실하지 않지만 사용자가 로그인해야합니다. 그렇지 않은 경우이 문제를 한 번 해결하고 견인 또는 더 많은 트리거를 사용하여 해결했습니다. 모두 열려 있고 같은 기능을합니다. 그러나 인터넷 속도가 30KB/s 이상으로 설정되어 문제가 코드가 아닌 코드에서 나온 것이지 확인하십시오.