Переход по URL не работает - PullRequest
1 голос
/ 13 февраля 2010

У меня есть отчет, который содержит ссылку на документ Word. Я создал действие для текстового поля «Перейти к URL» с заполненным URL.

У меня есть панель PerformancePoint, отображающая отчет, который находится в библиотеке отчетов с использованием отчетов SharePoint Integrated.

Ссылка работает неправильно. Следуя рекомендациям этого парня Я окружил свою ссылку w / javascript, чтобы открыть в новом окне.

Это работает везде, кроме конечного результата. Ссылка работает от BIDS, Dashboard Designer и библиотеки отчетов. Он не работает из панели мониторинга, развернутой на сайте SharePoint. Есть идеи?

Edit: Эта HTML-ссылка:

=First(Fields!Link.Value, "MyUrl")  

дает мне это в отчете:

<TD style="WIDTH:53.98mm;word-wrap:break-word;HEIGHT:6.35mm;" class="a7">Click Me!</TD>

Это ссылка на Javascript:

="javascript:window.location.href='" & First(Fields!Link.Value, "MyUrl") & "';"

дает мне это в представленном отчете:

<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>

Что ничего не делает, когда вы нажимаете на него.

Ответы [ 2 ]

1 голос
/ 17 февраля 2010

Оказывается, было две проблемы.

Моя первая попытка сделать ссылку с использованием https://example.com/... не сработала, поскольку Reporting Services 2005 отказывается ссылаться на веб-сайты https. (источник этой информации отсутствует, только определен экспериментально)

Моя вторая попытка разместить javascript вокруг ссылки не удалась, потому что панели мониторинга PerformancePoint 2007 не выполняют JavaScript из отчета. (источник этой информации отсутствует, только определен экспериментально)

Решением было вернуться к простому HTML-решению и использовать http. Это перенаправляется на https и документ загружается. Это решение может не работать, если ваша среда автоматически не перенаправляет http -> https.

Я не упомянул https в своем первоначальном вопросе, потому что я не понимал, что это будет иметь значение.

1 голос
/ 15 февраля 2010

Я не знаком с Performancepoint, но то, как вы пишете javascript, кажется, вы немного его упростили? Я спрашиваю, потому что единственный способ, которым прекрасно работающая ссылка не будет работать, - это если на странице есть возвращаемое значение false для ссылок в ней. Попробуйте переместить все изменение URL в функцию, например:

<script type='text/javascript'>
function goTo(url) {
   window.event.stopPropagation(); // cancelBubble() in IE
   location.href = url;
   return false;
}
</script>

со ссылкой:

="javascript:goTo('" & First(Fields!Link.Value, "MyUrl") & "')"

и сделайте несколько проб и ошибок внутри функции goTo, извините, что не могу вам помочь более точно. Попробуйте также выполнить тестирование во втором браузере (если вы этого еще не сделали), чтобы выяснить, не является ли это поведением, специфичным для браузера.

...