2012-09-12 93 views
1

這是我父頁面上,從那裏我打開一個彈出如何關閉彈出的iframe在HTML

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head id="Head1" runat="server"> 
    <title>Popup example</title> 
    <script type="text/javascript"> 
     function OpenPop() { 
      window.scrollTo(0, 0); 
      var width = document.documentElement.clientWidth + document.documentElement.scrollLeft; 
      var height = document.documentElement.clientHeight + document.documentElement.scrollTop; 
      var layer = document.createElement("div"); 
      layer.style.zIndex = 2; 
      layer.id = "layer"; 
      layer.style.position = "absolute"; 
      layer.style.top = "0px"; 
      layer.style.left = "0px"; 
      layer.style.height = document.documentElement.scrollHeight + "px"; 
      layer.style.width = width + "px"; 
      layer.style.backgroundColor = "black"; 
      layer.style.opacity = "0.75"; 
      layer.style.filter += ("progid:DXImageTransform.Microsoft.Alpha(opacity=75)"); 
      document.body.style.position = "static"; 
      document.body.appendChild(layer); 
      var size = { "height": 220, "width": 400 }; 
      var iframe = document.createElement("iframe"); 
      var popUrl = 'popup.htm'; 
      iframe.name = "Logic Form"; 
      iframe.id = "popup"; 
      iframe.src = popUrl; 
      iframe.style.height = size.height + "px"; 
      iframe.style.width = size.width + "px"; 
      iframe.style.position = "fixed"; 
      iframe.style.zIndex = 3; 
      iframe.style.backgroundColor = "white"; 
      iframe.frameborder = "0"; 
      iframe.style.top = ((height + document.documentElement.scrollTop)/2) - (size.height/2) + "px"; 
      iframe.style.left = (width/2) - (size.width/2) + "px"; 
      document.body.appendChild(iframe); 
     } 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <a onclick="OpenPop();" href="#">OpenPopup</a> 
    </div> 
    </form> 
</body> 

,這是我popup.html頁,

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
    <script type="text/javascript"> 
     function closeIframe() { 
      var iframe = opener.document.getElementById("popup"); 
      var layer = opener.document.getElementById("layer"); 
      iframe.parentNode.removeChild(iframe); 
      layer.parentNode.removeChild(layer); 
     } 
    </script> 
</head> 
    <body> 
     <h3>This is Popup</h3> 
     <a onclick="closeIframe();" href="#">Close</a> 
    </body> 
</html> 

提出問題:在popup.html,有關閉按鈕,誰調用函數來刪除iframe,但我不能關閉彈出窗口,有人幫助?

有人有更好的解決方案或例子做這樣的彈出?

任何幫助,高度讚賞

+0

您的控制功能是否起作用closeIframe()function w當你點擊關閉? – Ankit

+0

@Ankit,是的,它是 –

回答

1

CloseIframe方法應該是:

function closeIframe() { 
    window.parent.ClosePop(); 
} 

,並在你的主頁,有權根據OpenPop方法,添加close操作,如:

function ClosePop() { 
    var layer = document.getElementById("layer"); 
    var iframe = document.getElementById("popup"); 
    document.body.removeChild(layer); // remove layer 
    document.body.removeChild(iframe); // remove div 
} 
+0

工作在罰款,但流行的結果是不相同的Firefox和谷歌chorme –

+0

你會在瀏覽器政策的Chrome中出現錯誤,只需打開控制檯,並看到該錯誤是因爲您使用本地文件。這個例子適用於任何瀏覽器,甚至IE;) - '不安全的JavaScript嘗試訪問帶有URL的幀「這是一個策略錯誤,在你的例子中不是代碼錯誤,除非彈出窗口在其他域中,並且會拋出一個CROSS -DOMAIN異常。 – balexandre

+0

此代碼在其他瀏覽器的結果: - [1] FF: - http://postimage.org/image/o1o620bdz/ [2] IE: - http://postimage.org/image/3qli76xt3/ 谷歌瀏覽器: - http://postimage.org/image/iwhwguihb/ –

0

您可以使用jQuery UI dialog框顯示模式彈出窗口。這將很容易處理。

也有很多jQuery插件可以顯示像fancy boxcolor box彈出等

+0

我正在尋找與iframe做! –