Использование prototype.js для анализа и чтения файла XML в sharepoint 2010 без отключения режима редактирования. - PullRequest
1 голос
/ 10 июня 2011

Я работаю над созданием информационной панели для моей компании на sharepoint, включая извлечение информации из списков и библиотек других страниц в коллекции веб-сайтов. Я использую инструмент Corasworks (поставщик списка сайтов Sharepoint) для получения списка дочерних сайтов в виде XML-файла, для которого я создал некоторый код JavaScript с использованием «prototype.js» и свои собственные личные методы для чтения и анализа файла. , Я проверил файл внешне в Internet Explorer, и он отлично работает, получая необходимую информацию. Затем я попытался реализовать его на Sharepoint 2010, и он работал хорошо, однако, когда я вернулся, чтобы попытаться добавить еще одну веб-часть на свою страницу, я не смог, а затем обнаружил, что страница вызвала ошибку javascript, которая содержала следующее :

Line: 3 Char: 13993 Ошибка: несоответствие типов Код: 0 URL: (URL моего сайта)

Я вернулся и отладил свой код построчно, чтобы увидеть, где он падает, и обнаружил, что виновником является следующая первая строка:

     <script src="prototype.js" type="text/javascript"></script>

                                    <script src="flightDashboard.js" type="text/javascript"></script>
                                    <script>
                                    _spBodyOnLoadFunctionNames.push("ajaxCall");

                                    </script>

Конечно, я провел некоторое исследование и обнаружил, что использование prototype.js приводит к сбою некоторых функций javascript в Microsoft, поскольку он расширяет определенную информацию и методы, которые они используют. Я искал способы обойти эту проблему, потому что мой руководитель хочет, чтобы я использовал prototype.js из-за его простоты совместимости между браузерами. До сих пор я нашел несколько очень расплывчатых ответов, которые были даны людям с похожей проблемой, например:

"Как насчет упаковки ссылок на файл скрипта с помощью элемента управления EditModePanel, чтобы он отображался только тогда, когда страница находится в режиме отображения, а не в режиме редактирования. Т.е. разместить здесь свои ссылки на js

"- Майкл О'Донован

Однако он не уточнил, где реализовывать этот код, поэтому я попытался реализовать это в своем коде, и когда я сохранил страницу в Sharepoint Designer, веб-часть стала недействительной, и это не сильно помогло.

Это заставило меня застрять на несколько дней, и я действительно не могу найти что-то, что могло бы двигаться дальше, я был бы очень признателен за любую информацию или советы, которые могут помочь мне достичь этого. Благодарю.

1 Ответ

0 голосов
/ 13 июля 2011

Вы не сможете обойти эту проблему.PrototypeJS не очень хорошо работает с другими библиотеками javascript, поскольку вносит изменения в работу javascript.Смотрите здесь:

Как я могу использовать FancyUpload (с mootools) рядом с prototype.js?

PrototypeJS не имеет «безопасного режима» работыгде он не вносит изменений, которые могут вызвать проблемы с другими библиотеками.

Ваши два варианта

1) Изолировать код prototype.js внутри iframe, чтобы он не конфликтовал свеб-части sharepoint.

2) Переключитесь на другую библиотеку JavaScript.Большинство разработчиков sharepoint рекомендуют jQuery.

...