将ajaxified Webpart插入现有MOSS站点

时间:2010-04-13 15:18:50

标签: javascript ajax sharepoint web-parts jsonp

我需要编写一个webpart代码,目的是异步获取一些文档并将它们显示到现有页面中。不幸的是,我必须面对很多重新审视,到目前为止,我在寻找解决方案方面的努力似乎很有用。

1)我无法使用Microsoft asp.net ajax
2)我必须使用Jsonp,因为被叫服务(页面,等等......)在站点的域之外。这不是一个大问题 3)我没有可能改变现有的页面代码,所以我不能引用外部库,如JQuery 4)出于同样的原因,我无法在window.onLoad事件上调用我的方法,所以这里的问题是:如何在触发我的ajax调用之前确定所有内容都已正确加载?
5)由于同一个webpart的几个实例可以放在同一个页面中,各种js函数之间是否会有一些可能的冲突?

3 个答案:

答案 0 :(得分:1)

  1. D'哦
  2. D'oh#2
  3. jQuery只是本机JavaScript调用的包装器。如果可以的话,让他们放弃这个限制,因为如果你做任何远程复杂的事情,你就会对浏览器兼容性感到疯狂。
  4. 使用_spBodyOnLoadFunctionNames.push(functionName)来完成此任务。
  5. 完全取决于JS的进入。我们需要更多澄清。

答案 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服务器上)的页面?该页面可以为您检索文档。