【问题标题】:Insert an ajaxified Webpart into an existing MOSS site将 ajaxified Webpart 插入现有的 MOSS 站点
【发布时间】:2011-02-07 12:21:49
【问题描述】:

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

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

【问题讨论】:

    标签: javascript ajax sharepoint web-parts jsonp


    【解决方案1】:
    1. D'oh
    2. D'oh #2
    3. jQuery 只是原生 JavaScript 调用的包装器。如果可以的话,让他们放弃这个限制,因为如果你做任何远程复杂的事情,你会因为浏览器兼容性而发疯。
    4. 使用_spBodyOnLoadFunctionNames.push(functionName) 完成此操作。
    5. 完全取决于传入的 JS。我们需要更多说明。

    【讨论】:

      【解决方案2】:

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

      对于客户端,我相信您仍然可以将 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>
      

      【讨论】:

      • 感谢您的提示。我会尝试通过包含在正文中来查看是否一切正常。
      【解决方案3】:

      如何使用页面查看器 Web 部件来显示托管在其他地方(即不在您的 SharePoint 服务器上)的页面?该页面可以为您检索文档。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-12
        • 2010-10-10
        • 2011-02-19
        • 2010-11-05
        • 2018-12-12
        • 1970-01-01
        • 2011-03-25
        • 1970-01-01
        相关资源
        最近更新 更多