如何从父URL或父iframe获取变量?

时间:2012-02-28 10:58:12

标签: php javascript html

如何从父窗口网址获取变量到子iframe或从父iframe获取变量到子iframe?

我有index.html文件,其中iframe表单的形式将数据发送到checker.php而不是这个文件将用户转发给带有变量的example.php,http://www.example.com/sample.php?variable=variable example.php有iframe并且iframe的 iframe名为authenticate.php。

1 个答案:

答案 0 :(得分:1)

正如Eugen Rieck试图找出的那样,内容只能通过iframe来源于同一个域,否则你会遇到same origin policy

要与iframe中的文档进行通信,您可以使用

var frame=window.document.getElementById('yourFrame');
var doc=frame.contentWindow.document;

然后,您可以与iframe中的文档元素进行通信。

我会将您尝试“抓取”的变量包含在example.php中作为隐藏文本输入。您可以通过运行查询字符串来执行此操作:

var queryString = new Object;
var qstr = window.location.search.substring(1);
var params = qstr.split('&')
for (var 1=0; i<params.length; i++) {
var pair = params[i].split('=');
queryString[pair[0]]=pair[1];

var variable = queryString['variable'] //find the value of variable
document.write("<input style='visibility:hidden' id='variable' type='text' value='"+ variable +"'></input>");

一旦在iframed文档中,请使用以下命令将其拉回父级:

var variable = doc.getElementById('variable').value;

和鲍勃是你的叔叔。

如果这有帮助,请告诉我....

---- ---- EDIT

或者,如果您要在父页面的函数中编写它,要从子页面调用它,您可以使用:

function callParentFunction() {

            parent.getVariable();
            return false;

}

你可以运行一个onload来调用这个或类似的东西