【问题标题】:Pass Querystring parameter from SharePoint to Java Applet webpart将 Querystring 参数从 SharePoint 传递到 Java Applet webpart
【发布时间】:2010-11-29 03:20:14
【问题描述】:

我有一个 SharePoint webpart 页面,在页面 Querystring(在 URL 中)中有一个参数,我还有一个 Page Viewer webpart(它实际上是 IFRAME 的指定网页),它显示了一个 Java 小程序。

有什么方法可以让 Java Applet 接收 SharePoint 查询字符串中的参数?

在 webpart 中做 Java 小程序的原因是允许将文件拖放到 Java 小程序上,该参数显示文件将在 SharePoint 文档中心中保存的位置。

我将不胜感激。

干杯

尼克

注意事项:

  1. Java Applet 无法直接读取共享点页面中的查询字符串,因为页面查看器 Web 部件周围设置了“墙”。
  2. 我尝试在加载 SharePoint 页面时创建一个 cookie,然后在加载 Java 小程序时读取 cookie(在收到文件后,因此这不是时间问题),但它无法访问 cookie (不同的域?)

【问题讨论】:

  • @Old Nick:你能扩展一下“墙”的含义吗? Java 小程序的 HTML 嵌入到 CEWP 中时是什么样的?它应该是什么样的?也许你可以用这个更新你的问题。
  • Walls :例如,Sharepoint 不允许从呈现在内容编辑器 Web 部件中的网页看到任何 Sharepoint 应用程序的可见性。这样做的好处是 SharePoint 不会破坏网页,但缺点是无法在 sharepoint 中查看用户上下文。
  • 我的打字错误,它是页面查看器 Web 部件,而不是内容编辑器 Web 部件。脑子昏昏沉沉的..... :)

标签: c# java sharepoint web-parts


【解决方案1】:

听起来您的两个网页来自不同的域。在这种情况下,您需要使用跨域通信技巧之一来打破墙壁。

阅读这篇文章,

http://msdn.microsoft.com/en-us/library/bb735305.aspx

这是我最喜欢的方法。总结一下,

  1. 您需要在包含一些 Javascript 的小程序域上创建一个简单的 Web 部件页面,以将 URL 片段(在 # 之后)传递到小程序窗口。我们称之为 xd_helper(跨域助手)。
  2. 当您在其他 Web 部件中有 URL 时,您调用 xd_helper#querystring。
  3. xd_helper 可以将查询字符串发送到小程序,因为它们位于同一域中。

xd_helper Javascript 可以非常简单。看看 Google 朋友群使用的那个,

var u=location.href,h=u.substr(u.indexOf("#")+1).split("&"),t,r;try{t=h[0]===".."?parent.parent:parent.frames[h[0]];r=t.gadgets.rpc.receive}catch(e){}r&&r(h);

Facebook 使用更详细的版本,

http://static.ak.facebook.com/js/api_lib/v0.4/XdCommReceiver.js?2

【讨论】:

    【解决方案2】:

    SharePoint 和页面查看器 Web 部件可能不是这里的直接问题。正如您所说,您描述的“墙”是HTML IFrame 标签。当小程序位于 IFrame 内时,您可以将搜索重点放在查询字符串是否可访问。

    或者,您为什么不使用内容编辑器 Web 部件?这允许您将任意 HTML 直接包含在页面上。不要通过查询字符串传递参数,而是通过object tag

    <object 
      classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
      width="200" height="200">
      <param name="code" value="Applet1.class">
      <param name="paramX" value="valueX">
    </object>
    

    您应该能够通过以下方式检索:

    String name = getParameter("paramX");
    

    【讨论】:

      【解决方案3】:

      您是否尝试过使用 JS 读取查询字符串,然后使用文档编写小程序的嵌入代码?

      【讨论】:

      • 问题在于,由于内容编辑器 Web 部件周围的“墙”,您无法从 SharePoint 页面和 Java 页面读取任何内容。
      【解决方案4】:

      找到了指向此 blog 的链接,其中介绍了如何将参数传递给内容编辑器 Web 部件,从而解决了问题。

      【讨论】:

        猜你喜欢
        • 2015-03-29
        • 1970-01-01
        • 2010-10-23
        • 1970-01-01
        • 2011-07-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-11
        相关资源
        最近更新 更多