一个广告提供商想让我们添加一些Javascript到我们的网站,这将允许他们调整大小的iframe他们的广告是服务的。我一直在研究这段代码,其中的一部分就是这个循环:
var topIframes = top.document.getElementsByTagName('IFRAME');
for (var i = 0; i < topIframes.length; i++) {
if (topIframes[i].contentWindow === self) {
// found iframe that served the ad
如果父窗口和iframe都在同一个域上,我们可以从iframe调用父窗口的函数: iframe代码: // here we call 'myFunction' which is a parent function
window.postMe = "postMe value here";
window.parent.myFunction(postMe); 在父窗口中,我们可以定义如下函数: function myFunction(postMe) {
((console&&console.log)||alert)("postMe=
在我的应用程序中,我在我的lightbox中创建了一个iframe,当我打开lightbox时,它将调用父窗口函数并关闭lightbox,在父窗口函数中将创建和更新一些DOM,然后当我返回父窗口时,我试图访问这些DOM,它会抛出一个异常"script5011: Can't execute code from a freed script“。
我调用父窗口函数在iframe这样的window.parent.myFunc(arg1,arg2...),它会得到一个异常,我想那是IE9的一个新功能的变化,因为我在IE6,7,8和其他浏览器都工作得很好,我还没有找到一个有效的解决方案IE
我在主窗口的iFrame中有一个注册表。当用户提交表单时,将调用PHP在数据库中插入数据。完成后,我在父窗口中调用一个函数来关闭iFrame。不幸的是,iFrame还没来得及结束就关闭了。有没有办法让我只在iFrame返回"true“后才调用close PHP函数?
下面是函数:
<script type="text/javascript">
function submitForm() {
// Send the data to the server
document.getElementById("form1"
我有一个JS函数,有时在主窗口的上下文中调用,有时在客户端窗口中调用。如下所示:
var f = function() { alert(window.location); };
f(); // should show the location of the parent frame
// DOESN'T WORK, but is intended to show the location of the first IFrame
f.call(window.frames[0]);
对此进行谷歌搜索,主要向我展示了如何调用在子框架中定义的函数。但是,我希望接受父函数中定义的函数,并在子
我想从父窗口调用Iframe中的函数。作为
var iframe = document.getElementById("myframe");
if (iframe) {
var iframeContent = (iframe.contentWindow || iframe.contentDocument);
iframeContent.targetFunction();
}
但它不起作用。
因为Iframe的内容是动态添加的(所有内容都添加在iframe on demand even js file中);
我遵循了这个
有什么办法可以解决这个问题吗?