2013-05-09 5 views
1

Я изучил это довольно тщательно, и все говорят, что код, который у меня ниже, должен загружать SP.js, но я не могу загрузить его.Почему SP.js не загружается?

отладки я получаю:

NewForm.aspx, line 1667 character 5 
SCRIPT5009: 'PeoplePicker' is undefined 

и не видят SP.JS под видом источников.

<SharePoint:ScriptLink Name="SP.js" runat="server" OnDemand="true" 
    Localizable="false" /> 
<script type="text/javascript"> 

ExecuteOrDelayUntilScriptLoaded(SetWebUserData(), "SP.js"); 

function SetWebUserData() { 
    var pplPicker = new PeoplePicker(); 
    // Set the parent tag id of the people the picker. 
    pplPicker.SetParentTagId('Main_x0020_Contact'); 
    pplPicker.SetLoggedInUser(); 
    }; 
</script> 

Любая помощь очень ценится.

+0

'SP.js' загружается штраф. Ошибка указывает, что вы не определили класс 'PeoplePicker'. Если у вас есть, то есть ошибка с этим классом или скрипт, в котором он определен, неправильно загружается. –

+0

Я определил PeoplePicker в файле SP.js, и даже когда я удалю весь код и просто сделаю PeoplePicker функцией предупреждения, я не получаю предупреждения. Я не верю, что sp.js загружается штрафом. – user2366475

+0

Если я включил PeoplePicker в исходный код, я все равно получаю сообщение об ошибке – user2366475

ответ

1

Я был в состоянии решить эту проблему и люди сборщика заселена с текущим пользователем, используя код находится здесь: http://vbcity.com/blogs/skullcrusher/archive/2008/11/04/set-sharepoint-peoplepicker-field-mark-2.aspx

Этот код не требует SP.js

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

5

Вы используете неверный код ExecuteOrDelayUntilScriptLoaded. Вы должны передать только имя функции, она должна выглядеть следующим образом:

ExecuteOrDelayUntilScriptLoaded(SetWebUserData, "sp.js"); 

() Без

1

Первый параметр ExecuteOrDelayUntilScriptLoaded должен быть функция. Эта функция вызывается после загрузки загруженного файла сценария.

<SharePoint:ScriptLink Name="SP.js" runat="server" OnDemand="true" 
    Localizable="false" /> 
<script type="text/javascript"> 

ExecuteOrDelayUntilScriptLoaded(SetWebUserData, "SP.js"); 

function SetWebUserData() { 
    var pplPicker = new PeoplePicker(); 
    // Set the parent tag id of the people the picker. 
    pplPicker.SetParentTagId('Main_x0020_Contact'); 
    pplPicker.SetLoggedInUser(); 
    }; 
</script> 

С(), вы вызова функцией. Это значит, что у вас была ошибка вашей функции как параметра, а не самой функции.

Пример для лучшего понимания:

function helloFunction() { 
    return 42; 
} 

var myHelloFunction = helloFunction; // Function is passed 
var myHelloFunctionResult = helloFunction(); // Result of your function (42) is passed 
0

Я знаю, что это немного поздно, но я думаю, что это ответ, который вы ищете.

SP.SOD.executeFunc('sp.js', 'SP.ClientContext',function(){ 
    var pplPicker = new PeoplePicker(); 
    // Set the parent tag id of the people the picker. 
    pplPicker.SetParentTagId('Main_x0020_Contact'); 
    pplPicker.SetLoggedInUser(); 
}; 
Смежные вопросы