经过一些研究(即使在stackoverflow),我仍然无法弄清楚如何做到这一点。 parent.method()
不会做到这一点,也不会尝试其他一些解决方案。
情况:我在客户端(本例中是手机)上有一个 index.html ,它有一个iframe加载服务器端页面。我需要做的是从iframe内容(服务器端)调用 index.html (客户端)中定义的javascript方法。
作为一个例子(我在上述问题中没有使用android),Android应用程序有addJavascriptInterface
,当定义时,允许用户从服务器端页面调用客户端定义的方法,只需调用{ {1}}。
任何提示?
谢谢!
答案 0 :(得分:1)
window.top.foo
用于顶级窗口
window.parent.foo
直接父母
答案 1 :(得分:1)
我意识到我这个聚会只有一年的时间,但没有真正的答案。
因此,为了做到这一点,两个文件必须位于同一个域中。由于您在手机localhost上有index.html并在您的网站上加载页面,因此无法运行(locahost到example.com)。您也可以将index.html加载到您的网站上,这样可以解决此问题(example.com到example.com)。然后,您可以在正常window.top.function
中引用父框架。
答案 2 :(得分:1)
在某些情况下,从父文档调用iframe内部的javascript函数可能是必要的,反之亦然; 从iframe调用父文档中的javascript函数。
例如; 父文档的iframe属性为'iFrameId',iframe文档中定义了函数'functionInIframe()'。 以下代码可以从父文档本身调用iframe函数。
document.getElementById('iFrameId').contentWindow.functionInIframe();
以下代码可以从iframe本身调用父文档(functionInParent())中定义的函数。
parent.functionInParent();
这样javascript可以在父文档和iframe之间进行交互。