我对spservices有点新意,我希望我不会问一个已经回答的问题。我已已检查,但未能找到解决此问题的其他问题。我正在使用GetListItems来检索存储在列表中的url和titles。现在我正在检索项目,只是将它们显示在临时表中。
它在我创建的一个引用js文件,jquery等的小html页面中完美地工作。
但是,
当我将内容编辑器Web部件设置为指向html文件(使用内容链接)时,javascript不起作用(或某些东西),并且不显示项目。我发现它到底停止了工作:
$().SPServices({
operation: method,
async: false,
listName: list,
CAMLViewFields: fieldsToRead,
CAMLQuery: query,
completefunc: function (xData, Status) {
alert("When it's in the Content Editor Web Part, this gets called");
$(xData.responseXML).SPFilterNode("z:row").each(function() {
alert("but this does not");
var hyperlink = ($(this).attr("ows_Hyperlink")).split(",");
var url = hyperlink[0];
var description = hyperlink[1];
AddRowToTable(url,description);
});
}
});
正如我之前所说,当我转到html页面的物理地址时,此代码可以正常工作。它抓取列表项并显示正确的内容。当我通过Content Link引用内容编辑器Web部件中的html页面时,会出现问题。如果有人对此有所了解,那将是非常受欢迎的。
谢谢,AA
答案 0 :(得分:2)
您似乎需要访问根网站。如果出于某种原因,你根本无法使用ECMAScript
clientContext = new SP.ClientContext();
var oWebsite = clientContext.get_site().get_rootWeb(); //this is the web object
var url = clientContext.get_site().Url; //this is the root url
var listServiceUrl = url + "/_vti_bin/lists.asmx";
如果在当前设置中这是安全的,您可以随时使用location.host + "/_vti_bin/lists.asmx"
。