Как перенаправить на другую страницу в Office JS

У меня есть элемент управления с действием - ExecuteFunction в надстройке Outlook.

<Control xsi:type="Button" id="button1">
                  <Label resid="buttonLabel" />
                  <Supertip>
                    <Title resid="buttonTitle" />
                    <Description resid="buttonSuperTipDescr" />
                  </Supertip>
                  <Icon>
                    <bt:Image size="16" resid="icon16" />
                    <bt:Image size="32" resid="icon32" />
                    <bt:Image size="80" resid="icon80" />
                  </Icon>
                  <Action xsi:type="ExecuteFunction">
                    <FunctionName>redirectFunction</FunctionName>
                  </Action>
                </Control>

И в соответствующем js у меня есть функция, которая должна перенаправить на другую страницу, как показано ниже.

function redirectFunction() {
                    window.open("https://othersite.com")
                    //window.location.href = "https://othersite.com";
                }

Я добавил другой сайт в список доменов приложений в файле манифеста. Тем не менее я не могу перенаправить на другую страницу.

Нужно ли нам что-нибудь еще включать? Как мы можем перенаправить на другую страницу прямо нажатием кнопки?


person AhmedVali    schedule 18.12.2018    source источник
comment
У вас есть другой сайт, который вы пытаетесь перенаправить? Это сайт с возможностью создания фреймов?   -  person Mavi Domates    schedule 19.12.2018
comment
ExecuteFunction - это действие без какого-либо пользовательского интерфейса. Есть ли конкретная причина для использования executeFunction и перенаправления? Можем ли мы лучше понять сценарий использования, чтобы помочь вам?   -  person Outlook Add-ins Team - MSFT    schedule 19.12.2018
comment
Привет Mavi, Нет, сайт не поддерживает фреймворк.   -  person AhmedVali    schedule 19.12.2018
comment
Привет, @ OutlookAdd-insTeam-MSFT, я пытаюсь перенаправить пользователя на страницу Yammer. Если я открываю панель задач и помещаю тег ахора, я могу перенаправить на страницу Yammer. Разве мы не можем выполнить прямое перенаправление нажатием кнопки. Он по-прежнему выполняет функцию. это не просто перенаправление. Каким образом мы могли бы этого добиться?   -  person AhmedVali    schedule 19.12.2018
comment
@AhmedVali - Не могли бы вы пояснить, что вы имеете в виду? Вы используете функциональные возможности, а не панель задач? Когда вы говорите, что перенаправляете, вы говорите об открытии нового окна браузера и перенаправлении на страницу?   -  person Mavi Domates    schedule 19.12.2018
comment
@Mavi, в настоящее время у меня есть кнопка, которая выполняет функцию в надстройке Outlook. Внутри этой функции я пытаюсь открыть другой сайт в новом окне, но он не работает. Я использую window.location.href и указываю на целевой URL.   -  person AhmedVali    schedule 19.12.2018
comment
@AhmedVali - а функции без UI? Значит, у вас не было бы пользовательского интерфейса для работы?   -  person Mavi Domates    schedule 19.12.2018
comment
@Mavi, Спасибо за ответы. Я смотрю на то, что при нажатии кнопки вызывается функция и она запускается (напечатаны журналы консоли и проверена функция isnide), но она не перенаправляет на страницу. У меня вопрос, будет ли вообще работать перенаправление? Если я выполню window.location.href внутри любой функции, перейдет ли она на целевую страницу?   -  person AhmedVali    schedule 19.12.2018
comment
Этого не будет - потому что этот javascript не запущен на странице (строго говоря) - он без пользовательского интерфейса - вы можете поместить несколько случайных тегов в свой function.html, и вы никогда их не увидите. Единственное использование конечной точки функции - это действительно выполнение функции (общение с офисным клиентом).   -  person Mavi Domates    schedule 19.12.2018


Ответы (1)


Вы упомянули, что используете functions.

Если вы имеете в виду FunctionFile, описанный здесь - этот опыт не связан с каким-либо пользовательским интерфейсом. Все, что он может сделать, это выполнить функцию JavaScript при нажатии кнопки. Таким образом, ничто из того, что вы поместили в файл функции или конечную точку (не имеет значения, является ли это файл HTML или страница, отображаемая на сервере), никогда не будет отображаться пользователю.

Если вы хотите отображать Yammer для пользователя в результате нажатия кнопки или какого-либо действия, попробуйте выполнить window.open('https://yammer.com'). Это должно работать, если домен внесен в белый список в вашем манифесте.

person Mavi Domates    schedule 19.12.2018
comment
Привет, Мави, да, я думал, что window.ope () будет работать. Но это не так. См. Мою конфигурацию ниже. - person AhmedVali; 20.12.2018
comment
Привет, Мави! Да, я думал, что window.open () поможет. Но это не так. Я редактировал вопрос с кодом. Он не работает с указанной выше конфигурацией. - person AhmedVali; 20.12.2018
comment
Чтобы уточнить - чего именно вы пытаетесь достичь - открываете ли вы панель задач с некоторым URL-адресом в ней, а затем нажимаете кнопку без пользовательского интерфейса, ожидая, что URL-адрес в панели задач изменится на новый? window .open () откроет новый браузер по умолчанию (в зависимости от ваших настроек) с указанным вами URL-адресом. Если это не то, что вы видите, не могли бы вы поделиться ошибками, которые вы видите, когда это происходит? - person Outlook Add-ins Team - MSFT; 21.12.2018