Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SharePoint列表查询JavaScript变量访问问题_Javascript_List_Sharepoint - Fatal编程技术网

SharePoint列表查询JavaScript变量访问问题

SharePoint列表查询JavaScript变量访问问题,javascript,list,sharepoint,Javascript,List,Sharepoint,我试图找出为什么我不能访问函数外部的变量theHeaders。我尝试返回它,然后直接调用该函数,我得到了一个定义的colListItem。我这样称呼它: 警报(onquerysucceeed())和警报(onquerysucceeed(发送方,args)) 我每次都会得到一个未定义的 如何访问函数外部的标题 我不明白的是,为什么我可以让它在onQuerySucceeded()函数中的alert()消息中工作,但我不能执行类似于doucment.write的操作。如果尝试alert()以外的任何其

我试图找出为什么我不能访问函数外部的变量
theHeaders
。我尝试返回它,然后直接调用该函数,我得到了一个定义的
colListItem
。我这样称呼它:

警报(onquerysucceeed())
警报(onquerysucceeed(发送方,args))

我每次都会得到一个未定义的

如何访问函数外部的标题

我不明白的是,为什么我可以让它在
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());
}
var siteUrl='/sites/dev/';
ExecuteOrderLayUntilScriptLoaded(retrieveListItems,“sp.js”);
函数retrieveListItems()
{
var clientContext=new SP.clientContext(siteUrl);
var oList=clientContext.get_web().get_list().getByTitle('myList');
var camlQuery=new SP.camlQuery();
camlQuery.set_viewXml(“”);
this.collListItem=oList.getItems(camlQuery);
加载(collListItem);
clientContext.executeQueryAsync(Function.createDelegate(this,this.onQuerySucceed),Function.createDelegate(this,this.onQueryFailed));
}
函数onquerysucceed(发送方,参数)
{
var listItemEnumerator=collListItem.getEnumerator();
var=”;
while(listItemEnumerator.moveNext())
{
var oListItem=listItemEnumerator.get_current();
theHeaders=theHeaders+oListItem.get_项目(“标题”);
}
警报(标题);
}
函数onQueryFailed(发送方,参数)
{
警报('请求失败。'+args.get_message()+'\n'+args.get_stackTrace());
}

如果在文件顶部(声明siteUrl的位置)声明变量,并从函数中删除该声明,则应该能够在函数外部访问该声明。但是,这意味着您正在更改变量的范围。如果你同意,它应该可以工作。

不要使用
文档。写
,因为它会破坏你的页面内容。将结果注入
div
会更好。比如:

document.querySelector('#myDiv').innerHTML = theHeaders

顺便说一下,您不能使用
alert(onQuerySucceeded())
因为从
retrieveListItems()
异步调用
onQuerySucceeded()
,所以它不能返回值。

最终目标是将结果写入页面,而不是显示警报消息。每当我用doucment.write或其他什么东西将警报消息切换出去时,都会出现权限错误。它与console.log()一起工作吗?警报/控制台上实际打印的内容是什么?标题列的内容以字符串形式显示,如“OneToThreeFour5”(列值为1、2、3、4、5),这对我很有用。您正在使用哪个浏览器?Internet Explorer。您获得了document.write to work或访问了函数外部的变量“theHeaders”?是。我把document.write放在了警报的位置,它就工作了。尝试放置html标签并在标签中显示标题值。