2

웹 사이트 및 Excel 추가 기능을 호스팅하는 mean-stack의 응용 프로그램이 있습니다. html5 활성화, 그것은에서displayDialogAsync 및 html5-history-api의 충돌

<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"></script> 
<script src="https://cdn.rawgit.com/devote/HTML5-History-API/master/history.js"></script> 

을 가지고있는 Excel 추가, 나는 Dialog API하여 웹 사이트의 페이지를 여는 버튼이 있습니다

$scope.openDialog = function() { 
    Office.context.ui.displayDialogAsync("https://localhost:3000/preview/tmp/6wr-4PqdBrYQwjp3AAAD", {}, function() {}) 
} 

내가 Excel에서이 버튼을 클릭 Chrome에서 온라인으로 연결하면 다음 URL (# 및 여러 개의 %2F이 체계적으로 추가됨)이 포함 된 대화 상자가 열리지 만 페이지가 잘 표시되지 않습니다. 나는 파이어 폭스에서 엑셀 온라인에서이 버튼을 클릭하면

https://localhost:3000/preview/tmp/6wr-4PqdBrYQwjp3AAAD?_host_Info=excel|web|16.00|en-us|b6f37f78-e519-7d03-0069-b9c4317a362c|isDialog#%2Fpreview%2Ftmp%2F6wr-4PqdBrYQwjp3AAAD%3F_host_Info=excel%7Cweb%7C16.00%7Cen-us%7Cb6f37f78-e519-7d03-0069-b9c4317a362c%7CisDialog 

그러나 URL은 웹 사이트의 홈페이지 표시 밝혀 다음 URL을 신속하게 변경 : 그래서

https://localhost:3000/home#%2Fpreview%2Ftmp%2F6wr-4PqdBrYQwjp3AAAD%3F_host_Info=excel%7Cweb%7C16.00%7Cen-gb%7C919fff78-e51f-dc20-0c3c-871b7d0ec25d%7CisDialog 

을 내 질문이 있습니다 :

Office.context.ui.displayDialogAsync은 내 웹 사이트의 URL에 #%2F을 체계적으로 추가합니까? 이것이 일어나는 것을 막을 수 있습니까?

2) Firefox가 허용하는 URL을 만들 수 있습니까 (#%2F)?

편집 1 :html5-history-api을 사용하지 않으면 작동합니다. 그래서 displayDialogAsync에 대해 html5-history-api을 비활성화하는 방법을 모르십니까? (office.js 이후에 html5-history-api을 사용해야하는 이유는 here입니다.

+0

설명하는 동작을 사람들이 테스트 할 수있는 링크를 공유 할 수 있습니까? –

+0

@VivekAthalye 죄송 합니다만, 평균 스택 어플리케이션을 호스팅하는 SSL을 가진 다른 도메인 이름이 없습니다 ... – SoftTimur

답변

4

이 작업을 수행하는 것은 displayDialogAsync이 아닙니다. 각도 라우팅 및 각도 위치 전략과 관련하여 자주 발생하는 문제입니다. "각도 응용 프로그램이 내 URL에 해시를 추가하고 있습니다"를 검색하면 해당 정보와 솔루션에 대한 많은 정보를 찾을 수 있습니다.

+0

'https : // localhost : 3000/preview/tmp/6wr-4PqdBrYQwjp3AAAD'를 잘 열 수 있습니다. 브라우저에서 해시를 추가하는 것은'displayDialogAsync'입니다 ... – SoftTimur

+0

동의하지 않습니다. 이것은 해시 값을 URL에 추가하는 Office.js의 코드가 아닙니다. 그러나 특정 위치 전략을 사용할 때 Angular가 있습니다. 제가 제안한 검색을하십시오. 모든 URL에서 발생하지는 않습니다. 그것은 복잡한 현상입니다. –

+0

나는 OP를 어제 편집 ... 내 테스트는'html5-history-api'를 제거하면 해시가 추가되지 않기 때문에'displayDialogAsync'와'html5-history-api' 사이에 충돌이 있음을 보여줍니다. 하지만 [html5-history-api]는 전체 애플리케이션에 사용해야합니다. [this] (https://stackoverflow.com/questions/42642863/office-js-nullifies-browser-history-functions-breaking-history- 사용/42703406 # 42703406). – SoftTimur