Pular para o URL não funciona
-
20-09-2019 - |
Pergunta
Eu tenho um relatório que contém um link para um documento do Word. Eu criei uma ação na caixa de texto que é saltada para o URL, com o URL povoado.
Eu tenho um painel de desempenho que exibe o relatório, que está em uma biblioteca de relatórios usando relatórios integrados do SharePoint.
O link não está funcionando corretamente. Seguindo as recomendações de esse cara Eu cercei meu link com o JavaScript para abrir em uma nova janela.
Isso funciona em todos os lugares, exceto para o resultado final. O link funciona com lances, designer de painel e biblioteca de relatórios. Ele não funciona de dentro do painel implantado no site do SharePoint. Alguma ideia?
Editar: Este link HTML:
=First(Fields!Link.Value, "MyUrl")
me dá isso no relatório renderizado:
<TD style="WIDTH:53.98mm;word-wrap:break-word;HEIGHT:6.35mm;" class="a7">Click Me!</TD>
Este link JavaScript:
="javascript:window.location.href='" & First(Fields!Link.Value, "MyUrl") & "';"
me dá isso no relatório renderizado:
<a tabindex="40" href="javascript:window.location.href='http://example.com/sites/some/subsite/DocumentLibrary/Folder/MyDocument.doc';" style="color:Blue" TARGET="_top">Click Me!</a>
O que não faz nada quando você clica nele.
Solução 2
Acontece que houve dois problemas acontecendo.
Minha primeira tentativa de renderizar um link usando https://example.com/... Não funcionou porque os serviços de relatórios 2005 se recusam a vincular -se aos sites HTTPS. (Nenhuma fonte para esta informação, apenas determinada através da experimentação)
Minha segunda tentativa de colocar o JavaScript em torno do link falhou porque os painéis de desempenho 2007 não executam o JavaScript de um relatório. (Nenhuma fonte para esta informação, apenas determinada através da experimentação)
A solução foi voltar a uma solução HTML direta e usar o HTTP. Isso é redirecionado para HTTPS e o documento carrega. Esta solução pode não funcionar se o seu ambiente não redirecionar automaticamente o HTTP -> https.
Não mencionei os HTTPs na minha pergunta original porque não percebi que isso faria diferença.
Outras dicas
Não estou familiarizado com o PerformancePoint, mas a maneira como você escreve o JavaScript parece que você simplificou um pouco? Estou perguntando porque a única maneira de que o link perfeitamente fino não funcionaria seria se a página tivesse um retorno falso para os links. Tente mover todo o alteração do URL para uma função, como:
<script type='text/javascript'>
function goTo(url) {
window.event.stopPropagation(); // cancelBubble() in IE
location.href = url;
return false;
}
</script>
com o link ser:
="javascript:goTo('" & First(Fields!Link.Value, "MyUrl") & "')"
E faça algumas tentativas e erros dentro da função Goto, desculpe não poder ajudá -lo com mais precisão. Tente também testar em um segundo navegador (se você ainda não está) para ver se esse é um comportamento específico do navegador.