我需要编写一个webpart代码,目的是异步获取一些文档并将它们显示到现有页面中。不幸的是,我必须面对很多重新审视,到目前为止,我在寻找解决方案方面的努力似乎很有用。
1)我无法使用Microsoft asp.net ajax
2)我必须使用Jsonp,因为被叫服务(页面,等等......)在站点的域之外。这不是一个大问题
3)我没有可能改变现有的页面代码,所以我不能引用外部库,如JQuery
4)出于同样的原因,我无法在window.onLoad事件上调用我的方法,所以这里的问题是:如何在触发我的ajax调用之前确定所有内容都已正确加载?
5)由于同一个webpart的几个实例可以放在同一个页面中,各种js函数之间是否会有一些可能的冲突?
答案 0 :(得分:1)
_spBodyOnLoadFunctionNames.push(functionName)
来完成此任务。答案 1 :(得分:1)
你不能只使用服务器端代码(例如,WebClient)调用第三方页面吗?您可能需要调整网站的信任级别。
对于客户端,我相信你仍然可以将jQuery代码“注入”到标记中。 Best way to use Google's hosted jQuery, but fall back to my hosted library on Google fail
<script type="text/javascript">
if (typeof jQuery == 'undefined')
{
document.write(unescape("%3Cscript src='/path/to/your/jquery' type='text/javascript'%3E%3C/script%3E"));
}
</script>
答案 2 :(得分:1)
如何使用页面查看器Web部件显示其他位置(即不在SharePoint服务器上)的页面?该页面可以为您检索文档。