Javascript 将值从子窗口传递到另一个域上的父窗口?

Javascript 将值从子窗口传递到另一个域上的父窗口?,javascript,jquery,salesforce,Javascript,Jquery,Salesforce,父窗口由my.salesforce.com域提供,子窗口(弹出窗口)由另一个域visual.force.com提供。功能是将用户在弹出窗口中选择的值填充回父窗口。我使用window.opener与父窗口通信,但在父窗口中收到错误消息“域、协议和端口必须匹配” 你知道如何避免这种情况吗?以及从子级传递给父级的值 -Sameer出于安全原因,Javascript无法跨域通信,因为它破坏了同源策略 不确定这是否可行,但您可能希望查看是否可以对父域上的Web服务进行JSON-p调用,该调用在服务器端设置

父窗口由my.salesforce.com域提供,子窗口(弹出窗口)由另一个域visual.force.com提供。功能是将用户在弹出窗口中选择的值填充回父窗口。我使用window.opener与父窗口通信,但在父窗口中收到错误消息“域、协议和端口必须匹配”

你知道如何避免这种情况吗?以及从子级传递给父级的值


-Sameer

出于安全原因,Javascript无法跨域通信,因为它破坏了同源策略

不确定这是否可行,但您可能希望查看是否可以对父域上的Web服务进行JSON-p调用,该调用在服务器端设置值,然后由父页面读取

您可以在此处阅读关于JSON-p的内容:


出于安全原因,Javascript无法跨域通信,因为它违反了同源策略

不确定这是否可行,但您可能希望查看是否可以对父域上的Web服务进行JSON-p调用,该调用在服务器端设置值,然后由父页面读取

您可以在此处阅读关于JSON-p的内容:


您可以使用
srcUp
功能绕过此问题。它不是一个官方API,诸如此类,但我似乎记得SF使用过它,特别是在服务云控制台方面

(可惜techtrekker评论中的链接已经过期)


对不起,这不是一个真正的答案,我从来没有破解过这样的东西。。。但至少你现在对谷歌还有一线希望。还可以尝试在salesforce.stackexchange.com上交叉发布?

您可以使用
srcUp
功能来解决这个问题。它不是一个官方API,诸如此类,但我似乎记得SF使用过它,特别是在服务云控制台方面

(可惜techtrekker评论中的链接已经过期)


对不起,这不是一个真正的答案,我从来没有破解过这样的东西。。。但至少你现在对谷歌还有一线希望。还可以尝试在salesforce.stackexchange.com上交叉发布?

我也遇到了同样的问题。我认为,如果您在salesforce标准编辑页面(家长),那么 创建与此页面相同的visualforce编辑页面(假定页面名称为Test)。之后,转到您实现此功能的对象并编辑“编辑”标准按钮,然后您将使用选项选择visualforce page Test获得ovveride


如果我对你的问题有错误的理解,请让我知道

我也遇到了同样的问题。我认为,如果您在salesforce标准编辑页面(家长),那么 创建与此页面相同的visualforce编辑页面(假定页面名称为Test)。之后,转到您实现此功能的对象并编辑“编辑”标准按钮,然后您将使用选项选择visualforce page Test获得ovveride


如果我对你的问题有错误的理解,请让我知道

谢谢你的回复。在我的例子中,我不知道如何使用srcUp函数。我在主页组件中添加了一些javascript,它覆盖了account的标准详细信息页面上的查找到VF查找页面上的href。在标准查找页面中,salesforce实现了top.window.opener.lookupPick()函数来更新父窗口中的记录。现在,因为在我的例子中,父窗口(salesforce.com)和Vf页面(.visual.force.com)是从不同的域提供的,所以我得到了同源策略的问题。在这种情况下,如果您将某些内容注入到侧栏中,我相信您可以同样地注入您自制的srcUp/event侦听器,它们可以在父窗口(实际上在侧栏中)上定义并从弹出窗口执行。我想到的另一件事是ajax代理,但它看起来非常核心:。正如我所说,我从来没有使用过它,我只是知道如果我不得不使用它,我应该用谷歌搜索什么。邮递信息就像一个符咒。这帮了大忙。现在唯一的事情是确保postMessage在IE8中正常工作。到目前为止,仅对铬合金进行了测试。再次感谢!令人惊叹的!大多数时候都是这样,“你需要谷歌搜索什么”,然后突然所有的东西都工作起来了,很简单,嗯。。。你会考虑把你的(匿名的,如果需要的)解决方案作为另一个答案让其他人受益吗?Bob Buzzard的VF查找得到了很多关注(),也许你也会出名:)Bob Buzzard是salesforce中的传奇人物。是的,你是对的,我应该知道谷歌搜索的目的。但无论如何,我会在我的博客(jungleeforce.wordpress.com)上分享代码,这样它就可以帮助任何想要这种功能的人。再次感谢眼霜。谢谢你的回复。在我的例子中,我不知道如何使用srcUp函数。我在主页组件中添加了一些javascript,它覆盖了account的标准详细信息页面上的查找到VF查找页面上的href。在标准查找页面中,salesforce实现了top.window.opener.lookupPick()函数来更新父窗口中的记录。现在,因为在我的例子中,父窗口(salesforce.com)和Vf页面(.visual.force.com)是从不同的域提供的,所以我得到了同源策略的问题。在这种情况下,如果您将某些内容注入到侧栏中,我相信您可以同样地注入您自制的srcUp/event侦听器,它们可以在父窗口(实际上在侧栏中)上定义并从弹出窗口执行。我想到的另一件事是ajax代理,但它看起来非常核心:。正如我所说,我从来没有使用过它,我只是知道如果我不得不使用它,我应该用谷歌搜索什么。邮递信息就像一个符咒。这帮了大忙。现在唯一的事情是确保postMessage在IE8中正常工作。到目前为止,仅对铬合金进行了测试。再次感谢!阿威索