theHeaders
関数の外で変数にアクセスできない理由を理解しようとしています。私はそれを返してから関数を直接呼び出してみましたがcolListItem
、定義されています。私はそれを次のように呼びました:
alert(onQuerySucceeded());
とalert(onQuerySucceeded(sender, args));
毎回未定義になります。
theHeaders
関数の外部にアクセスするにはどうすればよい ですか?
私が理解していないのは、関数内の alert() メッセージでonQuerySucceeded()
機能させることができる理由ですが、 のようなことはできませんdoucment.write
。alert() JavaScript 以外のアクションを試みると、アクセス許可が拒否されたというエラーが表示されます。
var siteUrl = '/sites/dev/';
ExecuteOrDelayUntilScriptLoaded(retrieveListItems, "sp.js");
function retrieveListItems()
{
var clientContext = new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle('myList');
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml("<Where><IsNotNull><FieldRef Name='Title' /></IsNotNull> </Where>");
this.collListItem = oList.getItems(camlQuery);
clientContext.load(collListItem);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded(sender, args)
{
var listItemEnumerator = collListItem.getEnumerator();
var theHeaders = "";
while (listItemEnumerator.moveNext())
{
var oListItem = listItemEnumerator.get_current();
theHeaders = theHeaders + oListItem.get_item('Title');
}
alert(theHeaders);
}
function onQueryFailed(sender, args)
{
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}