【发布时间】:2013-08-26 00:15:43
【问题描述】:
我想弄清楚为什么我不能在函数之外访问变量theHeaders。我尝试返回它,然后直接调用该函数,我得到一个 colListItem on defined。我这样称呼它:
alert(onQuerySucceeded()); 和 alert(onQuerySucceeded(sender, args));
我每次都得到一个未定义的。
如何在函数之外访问theHeaders?
我不明白为什么我可以让它在onQuerySucceeded() 函数的alert() 消息中工作,但我不能做类似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());
}
【问题讨论】:
-
它对我有用。你用的是哪个浏览器?
-
Internet Explorer。你让 document.write 工作还是你在函数之外访问了变量“theHeaders”?
-
是的。我将 document.write 放置在 alert 的位置,它起作用了。尝试放置 html 标签并在标签中显示 headers 值。
标签: javascript list sharepoint