我有一個SharePointWebControls:UserField
在頁面佈局中需要從拼寫檢查中排除,否則無論何時選擇一個用戶時,都會在代碼隱藏中檢測到大量拼寫錯誤。如何從sharepoint 2010中的拼寫檢查中排除字段?
似乎在Sharepoint 2007中,這種行爲可以通過使用excludefromspellcheck = "true"
來實現,但這似乎不適用於Sharepoint 2010.有沒有人遇到同樣的問題並找到解決方法?
我有一個SharePointWebControls:UserField
在頁面佈局中需要從拼寫檢查中排除,否則無論何時選擇一個用戶時,都會在代碼隱藏中檢測到大量拼寫錯誤。如何從sharepoint 2010中的拼寫檢查中排除字段?
似乎在Sharepoint 2007中,這種行爲可以通過使用excludefromspellcheck = "true"
來實現,但這似乎不適用於Sharepoint 2010.有沒有人遇到同樣的問題並找到解決方法?
基於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不是UserField的屬性,所以它可能不會自動向下複製到呈現的HTML。呈現時,UserField控件由多個元素組成。我會嘗試查看查看源代碼,以查看excludeFromSpellCheck是否將其添加到最終的HTML中。但要設置相應的元素屬性,您可能需要使用一些jQuery的是這樣的:
$("(input|textarea)[id*='UserField']").attr("excludeFromSpellCheck", "true");
您可以通過文本區域設置「excludeContentFromSpellCheck」屬性爲「true」禁用某些領域的拼寫檢查並輸入你不想被拼寫檢查的控件。
我在我的所有頁面佈局上都這樣做了。現在我不再有誤報。
解決方法是在不希望拼寫檢查的字段周圍添加div標籤,並添加一個javascript,將div標籤中的元素的「excludeFromSpellCheck」設置爲「true」。
我找到了解決方案說明如下:Inaccurate Spell Check on SharePoint Publishing Pages
喬Furner張貼了這個解決方案,這爲我工作。
https://www.altamiracorp.com/blog/employee-posts/spell-checking-your-custom-lay
它排除了頁面上的所有PeoplePickers:
function disableSpellCheckOnPeoplePickers() {
var elements = document.body.getElementsByTagName("*");
for (index = 0; index < elements.length; index++) {
if (elements[index].tagName == "INPUT" && elements[index].parentNode && 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) {
}
}
此代碼工作僅部分,因爲如果你把人員選取器值再次檢查人員選取垃圾值一次。
花了一些戳,以獲得正常的JavaScript來做這項工作,而不是使用jQuery,但這種方法工作設置所有呈現的HTML元素的屬性。 – Stark 2011-03-07 16:31:24