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

时间:2013-05-09 14:00:45

标签: javascript jquery salesforce

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

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

-Sameer

3 个答案:

答案 0 :(得分:2)

您可以使用srcUp函数解决此问题。它不是官方API,等等等等,但我似乎记得它被SF使用,特别是在服务云控制台周围。

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上进行交叉发布吗?

答案 1 :(得分:1)

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

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

您可以在这里阅读有关JSON-P的内容:

What is JSONP all about?

答案 2 :(得分:0)

我遇到了同样的问题。我想如果你在salesforce标准编辑页面(Parent)那么 创建与此页面相同的visualforce编辑页面(假设页面名称为Test)。之后转到你实现它的对象并编辑'edit'标准按钮然后你将获得ovveride选项选择visualforce页面测试。

如果我对你的问题有所了解,请告诉我....