Перейти к URL-адресу не работает

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

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

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

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

Изменить: эта 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>

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


person Nathan DeWitt    schedule 12.02.2010    source источник


Ответы (2)


Я не знаком с 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, извините, что не могу помочь вам более точно. Попробуйте также протестировать во втором браузере (если вы еще этого не сделали), чтобы увидеть, не связано ли это с каким-либо конкретным поведением браузера.

person Francisco Aquino    schedule 15.02.2010
comment
Я думаю, что PerformancePoint - большая часть того, почему это не работает. Как я уже сказал, если я перейду непосредственно к отчету в библиотеке отчетов, он будет работать нормально. Когда отчет отображается на панели мониторинга PerformancePoint, он перестает работать. - person Nathan DeWitt; 15.02.2010
comment
Но как только ссылки отображаются так, как вы вставили выходной HTML (то есть из панели управления, верно?), Нет ничего, что могло бы помешать ему срабатывать, кроме возможных перехватов на ссылках, ЕСЛИ вывод панели - это ваш href = javascript: и т. Д., Это может работать, если вы остановите событие Bubble. - person Francisco Aquino; 15.02.2010

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

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

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

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

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

person Nathan DeWitt    schedule 17.02.2010