代码之家  ›  专栏  ›  技术社区  ›  mamoo

将Ajaxified Web部件插入现有的Moss站点

  •  0
  • mamoo  · 技术社区  · 14 年前

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

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

    3 回复  |  直到 14 年前
        1
  •  1
  •   zincorp    14 年前
    1. D'OH
    2. “2”
    3. jquery只是本地javascript调用的包装器。如果可以的话,让他们放弃这个限制,因为如果你做任何远程复杂的事情,你会在浏览器兼容性上发疯。
    4. 使用 _spBodyOnLoadFunctionNames.push(functionName) 为了实现这一点。
    5. 完全取决于js的加入。我们需要更多的澄清。
        2
  •  1
  •   Community Romance    7 年前

    你不能用服务器端代码(例如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>
    
        3
  •  1
  •   Paul Lucas    14 年前

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