Javascript 将ajaxified Web部件插入现有MOSS站点

Javascript 将ajaxified Web部件插入现有MOSS站点,javascript,ajax,sharepoint,web-parts,jsonp,Javascript,Ajax,Sharepoint,Web Parts,Jsonp,我需要编写一个Web部件,其目的是异步获取一些文档并将它们显示到现有页面中。不幸的是,我不得不面对很多灾难,而我寻找解决方案的努力到目前为止似乎毫无用处 1) 我无法使用Microsoft asp.net ajax 2) 我必须使用Jsonp,因为被调用的服务(页面,无论什么…)在站点的域之外。这不是什么大问题。 3) 我无法更改现有页面代码,因此无法引用外部库,如JQuery。 4) 出于同样的原因,我无法在window.onLoad事件上调用我的方法,因此这里的问题是:在触发ajax调用之前

我需要编写一个Web部件,其目的是异步获取一些文档并将它们显示到现有页面中。不幸的是,我不得不面对很多灾难,而我寻找解决方案的努力到目前为止似乎毫无用处

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

  • D'oh#2
  • jQuery只是本地JavaScript调用的包装器。如果可以的话,让他们放弃这个限制,因为如果你做任何远程复杂的事情,你会对浏览器兼容性发疯
  • 使用
    \u spBodyOnLoadFunctionNames.push(functionName)
    完成此操作
  • 完全取决于JS的加入。我们需要更多的澄清
  • D'oh#2
  • jQuery只是本地JavaScript调用的包装器。如果可以的话,让他们放弃这个限制,因为如果你做任何远程复杂的事情,你会对浏览器兼容性发疯
  • 使用
    \u spBodyOnLoadFunctionNames.push(functionName)
    完成此操作
  • 完全取决于JS的加入。我们需要更多的澄清

  • 您不能使用服务器端代码(例如WebClient)调用第三方页面吗?您可能需要为此调整网站的信任级别

    对于客户端,我相信您仍然可以将jQuery代码“注入”到标记中。

    
    if(typeof jQuery==“未定义”)
    {
    write(unescape(“%3Cscript src=”/path/to/your/jquery”type='text/javascript'%3E%3C/script%3E”);
    }
    
    您不能使用服务器端代码(如WebClient)调用第三方页面吗?您可能需要为此调整网站的信任级别

    对于客户端,我相信您仍然可以将jQuery代码“注入”到标记中。

    
    if(typeof jQuery==“未定义”)
    {
    write(unescape(“%3Cscript src=”/path/to/your/jquery”type='text/javascript'%3E%3C/script%3E”);
    }
    
    使用页面查看器web部件显示托管在其他位置(即不在SharePoint服务器上)的页面怎么样?该页面可以为您检索文档。

    使用页面查看器web部件显示托管在其他位置(即不在SharePoint服务器上)的页面怎么样?该页面可以为您检索文档。

    谢谢您的提示。我将尝试通过在身体中进行包含来看看是否一切顺利。谢谢你的提示。我会试着通过在身体里做包涵体来看看是否一切顺利。
    <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>