父窗口由 my.salesforce.com 域提供,子(弹出)窗口由另一个域 visual.force.com 提供。该功能是将用户在弹出窗口中选择的值填充回父窗口。我正在使用 window.opener 与父窗口通信,但在父窗口中收到错误消息“域、协议和端口必须匹配”。
知道如何避免这种情况吗?以及从孩子传递给父母的值?
-Sameer
父窗口由 my.salesforce.com 域提供,子(弹出)窗口由另一个域 visual.force.com 提供。该功能是将用户在弹出窗口中选择的值填充回父窗口。我正在使用 window.opener 与父窗口通信,但在父窗口中收到错误消息“域、协议和端口必须匹配”。
知道如何避免这种情况吗?以及从孩子传递给父母的值?
-Sameer
你也许可以用srcUp
函数来解决这个问题。这不是官方 API,等等等等,但我似乎记得它被 SF 使用过,尤其是在 Service Cloud Console 周围。
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 上交叉发布吗?
出于安全原因,Javascript 无法跨域通信,因为它违反了同源策略。
不确定是否可行,但您可能想查看是否可以对父域上的 Web 服务进行 JSON-P 调用,该服务在服务器端设置值,然后由父页面读取。
您可以在此处阅读有关 JSON-P 的信息:
我遇到了同样的问题。我认为,如果您在 salesforce 标准编辑页面(父)上,则创建一个与此页面相同的 visualforce 编辑页面(假设页面名称为测试)。之后转到您实施此操作的对象并编辑“编辑”标准按钮,然后您将获得带有选项的 ovveride 选择 visualforce 页面测试。
如果我对你的问题的理解有误,请告诉我....