2012-10-17 64 views
-1

我在iframe在主asp.net页面上看起来像div的页面中使用iframe。在iframe页面中,我有一个关闭按钮,当我点击关闭按钮时,我在iframe页面中调用了一个javascript函数,代码为:Iframe关闭时不刷新包含iframe的主页

window.location.href =“Pagename.aspx”;

这条线关闭的iframe,但其中包含关闭的iframe所以之后的iFrame刷新主网页....我在许多方面试图关闭的iframe不refres像

window.close()的;

但它不工作。关闭iframe的主要问题是关闭btn是在iframe页面它自我,所以如果我编写代码来关闭iframe页面中的iframe不起作用.....

主要问题是, iframe close btn应该像div关闭btn一样工作,这意味着当我点击关闭btn div时,可以将其设置为dislay,但iframe如何在iframe值可以在包含iframe的主页中访问时关闭iframe,但iframe页面无法获得iframe名称....

那么,你可以帮我解决这个问题..即关闭iframe而不刷新包含iframe的主页。提前感谢你!

回答

0

你是否控制了父页?您可以将脚本关闭父代中的iframe。因此,在您的父页面中,您有

function myCloseIframeFunction(){ 
    /*close iframescript*/ 
} 

然后从iframed页面调用parent.myCloseIframeFunction()。

+0

谢谢你这么多的解决方案工作... ...!我打电话,因为你告诉iframe关闭函数为parent.myCloseIframeFunction()...它工作!非常感谢!!! – Shruthi

+0

其实这在Firefox和Chrome浏览器中均可正常工作,但在IE8中,当我使用此代码时,它第一次运行良好,当我点击关闭按钮但第二次点击打开iframe时,iframe未打开...并且它在IE控制台中显示第一个打开框架的错误,如下所示:LOG:应用程序配置不允许使用给定的URL:应用程序的设置不允许使用一个或多个给定的URL。它必须与网站网址或Canvas网址匹配,或者该网域必须是其中一个应用网域的子网域。可以请你提前谢谢你! – Shruthi

+0

我可以获得链接吗?这听起来像是一个跨域错误,因为iframe的域与iframe的域不匹配,这只是跨域通信的一个问题。 –

0

写下面的JavaScript函数在Page which is being called in Iframe ..Call上的关闭按钮客户端单击事件这个功能...

 function close() 
     { 
       var ifr = parent.document.getElementById(IframeId); 
       ifr.parentNode.removeChild(ifr); 
     }