使用Firefox在嵌套的iframe上调用JS函数

时间:2013-03-11 14:44:31

标签: javascript firefox iframe

我建立了一个处理在线信用卡付款的网站。作为付款流程的一部分,我的网站上需要iframe,该iframe与外部安全服务配合使用以验证信用卡数据。我需要将特定信息传递给它将在表格帖子中使用的iframe。我通过调用此iframe上的函数从我的网站执行此操作,如下所示:

var frame = window.frames["SecureFrame"];
frame.SetInnerFormValues(...);

这在我的开发环境中运行良好。但是,我的网站还需要在任何客户端站点上作为iframe运行。因此,最终,客户端站点将有一个指向我的支付界面的iframe,该界面具有指向安全服务的iframe。这两个iframe当然都使用SSL。

这似乎在客户端创建了多个嵌套框架的问题。 (嗯,Chrome工作正常,但Firefox没有)

当最终用户在客户端站点上时,执行上述JS代码时会发生错误。 Firefox抛出错误说“TypeError:frame.SetInnerFormValues不是函数”。我尝试在JS控制台中执行一些代码来尝试在安全框架上获取此SetInnerFormValues函数,但我只是在“尝试访问任何内容时,错误:拒绝访问属性'...'我自己的网站。

拜托,Ninja的,我需要你的帮助!

1 个答案:

答案 0 :(得分:0)

由于iFrame是从其他网站加载的,因此您无法对其进行常规的javascript函数调用。那将是cross-site scripting (XSS)。您需要在服务器上设置一个响应SSL安全(https :) POST请求的接口,以保证用户信息的安全。