0

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

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

-Sameer

4

3 回答 3

2

你也许可以用srcUp函数来解决这个问题。这不是官方 API,等等等等,但我似乎记得它被 SF 使用过,尤其是在 Service Cloud Console 周围。

http://boards.developerforce.com/t5/Java-Development/Issue-with-javascript-button-within-Service-Console-need-advice/td-p/290171

http://boards.developerforce.com/t5/Visualforce-Development/Getting-quot-Not-Implemented-quot-Javascript-error-on-SrcUp/td-p/361585

https://salesforce.stackexchange.com/questions/5009/open-a-service-console-primary-tab-from-a-custom-component-module(可惜techtrekker评论中的链接已过期)。

http://salesforcedevbj.blogspot.com/2012/10/custom-links-and-buttons-in-service.html

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

于 2013-05-09T16:22:33.963 回答
1

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

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

您可以在此处阅读有关 JSON-P 的信息:

JSONP 到底是什么?

于 2013-05-09T14:08:59.123 回答
0

我遇到了同样的问题。我认为,如果您在 salesforce 标准编辑页面(父)上,则创建一个与此页面相同的 visualforce 编辑页面(假设页面名称为测试)。之后转到您实施此操作的对象并编辑“编辑”标准按钮,然后您将获得带有选项的 ovveride 选择 visualforce 页面测试。

如果我对你的问题的理解有误,请告诉我....

于 2013-05-10T07:09:38.217 回答