'ProjectTaskButtonAppName' не определен при нажатии вкладку «Список» в ленте
Вопрос
Я получаю следующую ошибку JavaScript, когда нажимаю на вкладку «Список» на ленте SP2010 для списка задач проекта, который я поместил в веб -часть на странице default.aspx:
Детали ошибки веб -страницы
Пользовательский агент: Mozilla/4.0 (совместимо; MSIE 8.0; Windows NT 6.1; WOW64; TRIDET/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .Net4.0c; .net4.0e; Infopath.3) TimeStamp: Tue, 5 июля 2011 20:32:33 UTC
Сообщение: 'ProjectTaskButtonAppName' - неопределенная строка: 1302 Чар: 9 Код: 0 URI:
http://sptest/_layouts/sp.ribbon.debug.js?rev=lc6eCMZP6gL5LnuSYh0S6Q%3D%3D
Я довольно много искал и не нашел никаких других жалоб ..
У кого -нибудь есть представление о том, что я могу проверить? У меня нет проекта MS на моей машине, но, конечно, это не сломает JS.
Решение 4
Я решил проблему, добавив попытку подлости к JS, который разбился. Я сделал следующее изменение в sp.ribbon.debug.js: строка 1302-
try{
return !eval($v_0.HiddenScript);
}
catch(e){
return true;
}
Теперь кнопки ленты хотя бы полезны. Я думаю, что мне придется внести такое же изменение в sp.ribbon.js.
Возможно, это связано с тем, что я не установлен MS Project на мою коробку.
В любом случае, надеюсь, это поможет какой -то другой бедной душе.
Другие советы
Значки ленты высыпаются, но все еще активны/используются. Если вы нажимаете в другом месте, они, как правило, возвращаются к жизни с цветом. Похоже, что ошибка ошибки/сценариев SP, которая имеет обходной путь.
У меня была та же проблема с моим списком задач проекта. Чтобы избавиться от этой проблемы, я протестировал различные настройки веб -деталей для списка задач проекта. Вариант, который сработал для меня, заключалась в том, чтобы установить тип панели инструментов на: полную панель инструментов.
Я попытался скрыть «новую ссылку» в просмотре списка/библиотеки, установив Свойство «Свойное панель инструментов WebPart» на «Нет панели инструментов», и я получил эту ошибку. Затем я нашел разные подходы, перечисленные ниже.
Перед этим, пожалуйста, измените необходимое свойство панели инструментов WebPart обратно на «Краткое панель инструментов».
Подход 1 (просто)
В общем файле JS, который вы использовали на сайте (или создаете новый файл JS, загрузите его в библиотеку активов и дайте ссылку на главной странице сайта) добавьте приведенный ниже код. Это просто создаст пустой дивинг и добавит его на страницу. Оно работает!
<script type="text/javascript" language="javascript">
var elemDivTaskButton = document.createElement('div');
document.body.appendChild(elemDivTaskButton);
var projectTaskButtonAppName = (typeof projectTaskButtonAppName === 'undefined') ? elemDivTaskButton : projectTaskButtonAppName;
</script>
Подход 2
- Создайте HTML -файл с кодом ниже и загрузите его в библиотеке SiteAssets.
- Отредактируйте страницу «allitems.aspx» списка (или требуемая страница, где добавлено представление списка) и добавьте веб -частя для редактора контента (CEWP).
- Отредактируйте WebPart Editor Content и свойство «Content Link» (на панели свойств веб -частей) Укажите вышеуказанный URL -адрес файла HTML. Нажмите «ОК».
В вкладке «Страница» на вершине ленты нажмите «Прекратить редактирование». Теперь проверьте страницу. Ошибка JS должна исчезнуть.
//Invoke HideNewItemLinkAndActviateWP Method after PageLoad. _spBodyOnLoadFunctionNames.push("HideNewItemLinkAndActviateWP"); function HideNewItemLink() { try { HideNewItemLink('Hero-WPQ2'); SetWebPartActive('MSOZoneCell_WebPartWPQ2'); } catch(err) { //Handle errors here } } function HideNewItemLink(tblId) { try { var tblNewItemLink = null; tblNewItemLink = document.getElementById(tblId); if(tblNewItemLink != null) { tblNewItemLink.style.display='none'; } } catch(err) { //Handle errors here } } function SetWebPartActive(wpId) { setTimeout(function() { var webPart = document.getElementById(wpId); if(webPart != null) { var dummyEvent = new Array(); dummyEvent["target"] = webPart; dummyEvent["srcElement"] = webPart; WpClick(dummyEvent); } }, 200) }
Я заметил, что эта проблема возникает, когда вы меняете панель инструментов с «Standard» на «нет» на XSLTListViewWebpart
Попробуйте добавить веб -части редактора контента и добавить код, как указано в первом подходе -
<script type="text/javascript" language="javascript">
var elemDivTaskButton = document.createElement('div');
document.body.appendChild(elemDivTaskButton);
var projectTaskButtonAppName = (typeof projectTaskButtonAppName === 'undefined') ? elemDivTaskButton : projectTaskButtonAppName;
</script>