Как исключить поле из проверки орфографии в sharepoint 2010?

#sharepoint-2010 #spell-checking

#sharepoint-2010 #проверка орфографии

Вопрос:

У меня есть SharePointWebControls:UserField в макете страницы, которое необходимо исключить из проверки орфографии, поскольку в противном случае при выборе пользователя в коде элемента управления обнаруживается большое количество орфографических ошибок.

Похоже, что в Sharepoint 2007 такое поведение можно было бы реализовать с помощью excludefromspellcheck = "true" но, похоже, это не работает для Sharepoint 2010. Кто-нибудь сталкивался с такой же проблемой и нашел способ ее обойти?

Ответ №1:

На основе SpellCheckEntirePage.js похоже, что это все еще так:

 var elements=document.body.getElementsByTagName("*");
for (index=0; index < elements.length;  index)
{
    if (null !=elements[index].getAttribute("excludeFromSpellCheck"))
    {
        continue;
    }
    // snipped - if (elements[index].tagName=="INPUT")
    // snipped - else if (elements[index].tagName=="TEXTAREA")
}
  

Но excludeFromSpellCheck не является свойством пользовательского поля, поэтому оно, вероятно, не будет автоматически копироваться в отображаемый HTML. При визуализации элемент управления UserField состоит из нескольких элементов. Я бы попробовал посмотреть на источник представления, чтобы увидеть, попадает ли excludeFromSpellCheck в окончательный HTML. Но для установки атрибута для соответствующих элементов может потребоваться использовать какой-нибудь jQuery, подобный этому:

 $("(input|textarea)[id*='UserField']").attr("excludeFromSpellCheck", "true");
  

Комментарии:

1. Потребовалось немного больше усилий, чтобы заставить обычный javascript выполнять эту работу вместо использования jQuery, но этот подход сработал для установки атрибута для всех отображаемых html-элементов.

Ответ №2:

Вы можете отключить проверку орфографии для определенных полей, установив для атрибута «excludeContentFromSpellCheck» значение «true» для текстовой области и элементов управления вводом, для которых вы не хотите проверять орфографию.

Я делал это на всех своих макетах страниц. Теперь я больше не получаю ложных срабатываний.

Решение состоит в том, чтобы добавить тег div вокруг полей, которые вы не хотите проверять, и добавить javascript, который устанавливает «excludeFromSpellCheck» в «true» для элементов в теге div.

Решение, которое я нашел, описано здесь: Неточная проверка орфографии на страницах публикации SharePoint

Ответ №3:

Джо Фернер опубликовал это решение, которое сработало для меня.
https://www.altamiracorp.com/blog/employee-posts/spell-checking-your-custom-lay

Это исключает всех пользователей на странице:

 function disableSpellCheckOnPeoplePickers() {
    var elements = document.body.getElementsByTagName("*");
    for (index = 0; index < elements.length; index  ) {
        if (elements[index].tagName == "INPUT" amp;amp; elements[index].parentNode amp;amp; elements[index].parentNode.tagName == "SPAN") {
            var elem = elements[index];
            if (elem.parentNode.getAttribute("NoMatchesText") != "") {
                disableSpellCheckOnPeoplePickersAllChildren(elem.parentNode);
            }
        }
    }
}

function disableSpellCheckOnPeoplePickersAllChildren(elem) {
    try {
        elem.setAttribute("excludeFromSpellCheck", "true");
        for (var i = 0; i < elem.childNodes.length; i  ) {
            disableSpellCheckOnPeoplePickersAllChildren(elem.childNodes[i]);
        }
    } 
    catch(e) {
    }
}
  

Ответ №4:

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