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