将查询字符串参数从 SharePoint 传递到 Java Applet Web 部件

发布于 2024-08-05 21:20:41 字数 486 浏览 3 评论 0 原文

我有一个 SharePoint Web 部件页面,页面查询字符串(在 URL 中)中有一个参数,我还有一个页面查看器 Web 部件(它实际上是 IFRAME 的指定网页),它显示了一个 Java 小程序。

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

在 Web 部件中执行 Java 小程序的原因是允许将文件拖放到 Java 小程序上,并且参数显示文件在 SharePoint 文档中心中的保存位置。

我将不胜感激任何和所有的建议。

干杯

Nick

注释:

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

I have a SharePoint webpart page, with a parameter in the page Querystring (in the URL), and I also have a Page Viewer webpart (which effectively IFRAME's the specified webpage), which shows a Java applet.

Is there any way I can get the parameter in the SharePoint Querystring to be recieved by the Java Applet ?

The reason for doing a Java applet in a webpart is to allow a file to be dragged and dropped onto the Java applet, and the parameter shows where the file would be saved in the SharePoint Document Centre.

I'd appreciate any and all suggestions.

Cheers

Nick

Notes:

  1. The Querystring in the sharepoint page cannot be read by the Java Applet directly, due to the 'walls' setup around the Page Viewer webpart.
  2. I've tried creating a cookie when the SharePoint page is loaded, then reading the cookie when the Java applet is loaded (upon recieving the file, so it's not a timing thing), but it can't access the cookie (different domains ?)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

楠木可依 2024-08-12 21:20:42

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

Found a link to this blog which covers how to pass parameters to a content editor webpart, which then resolved the issue.

你的背包 2024-08-12 21:20:41

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

阅读这篇文章,

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

这是我最喜欢的方法。总而言之,

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

xd_helper Javascript 可以非常简单。看看 Google Friend Connect 使用的版本,

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

Sounds like your two webpages run from different domains. In that case, you need to use one of the Cross-Domain Communication tricks to break the walls.

Read this article,

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

This is my favorite approach. To summarize it,

  1. You need to create a simple webpart page on the applet domain which contains some Javascript to pass the URL fragment (after #) to the applet window. Let's call it xd_helper (cross-domain helper).
  2. When you have the URL in the other webpart, you call the xd_helper#querystring.
  3. The xd_helper can send the querystring to the applet because they are on the same domain.

The xd_helper Javascript can be very simple. Look at the one used by Google Friend Connect,

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 uses a more verbose version,

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

欢你一世 2024-08-12 21:20:41

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

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

<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");

SharePoint and the Page Viewer Web Part probably aren't the issue here directly. As you state, the 'walls' that you describe are an HTML IFrame tag. You could focus your search on if the query string is accessible when the applet is within an IFrame.

Alternatively, why don't you use the Content Editor Web Part? That allows you to include any arbitrary HTML directly onto the page. Instead of passing parameters by query string, pass them through on the 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>

You should be able to retrieve with:

String name = getParameter("paramX");
白首有我共你 2024-08-12 21:20:41

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

Have you tried reading the querystring using JS then document.writing the embed code for the applet?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文