2012-06-16 64 views
0

我正在一個網站(C#,.Net 3.5 Framework)上工作並尋找Popup window的替代方法來避免瀏覽器的彈出窗口攔截器設置,或者換句話說,想要移除依賴關係彈出式窗口攔截器的網站。許多用戶因爲不喜歡而禁用它們。彈出窗口的替代(相同功能)

我正在使用母版頁面和網站的常用界面。

但是所有的要求都是一樣的。

  1. 重疊的窗口
  2. Common Interface/component,可用於顯示其它HTML/ASPX頁面的內容
  3. 值可以是passed and returned到開啓器窗口。

哪種方案是最佳選擇?

謝謝。

回答

0

我找到了一種方法,作爲彈出式窗口的替代方法。

樣式表(彈出相關CSS)
用途:CSS的彈出窗口

.PopupOuterDiv 
{ 
height:100%; 
width:100%; 
top:0px; 
left:0px; 
background-color:#000000; 
filter:alpha(opacity=50); 
-moz-opacity:.50; 
opacity:.50; 
z-index:50; 
} 

.PopupInnerDiv 
{ 
position:fixed; 
background-color:#ffffff; 
z-index:50; 
left:25%; 
right:25%; 
top:25%; 
border-right: #0066ff 5px solid; 
border-top: #0066ff 5px solid; 
border-left: #0066ff 5px solid; 
border-bottom: #0066ff 5px solid; 
font-family: Arial; 
} 

.PopoupTitle 
{ 
background-color: #0066ff; 
height:25px; 
color: white; 
} 

.PopoupButton 
{ 
color: #ffffff; 
width:20px; 
border:white 1px solid; 
background-color: #663300; 
} 

母版頁
用途:包含彈出的公共代碼

1.創建1外部褪色效果的分區
2.創建Div作爲容器或彈出窗口
3. C在容器DIV內部創建Iframe並分配URL。

<div class="PopupOuterDiv" runat="server" id="PopupOuterDiv" style="display:none;"></div> 
    <div class="PopupInnerDiv" runat="server" id="PopupInnerDiv" style="display:none;"> 
    <table border="0" cellpadding="0" cellspacing="0" width="100%"> 
     <tr class="PopoupTitle"> 
      <td id="PopoupTitle"></td> 
      <td align="right"> 
       <input class="PopoupButton" type="Button" value="X" onclick="closePopup();" /> 
      </td> 
     </tr> 
     <tr style="height:8px;" ><td></td></tr>   
     <tr> 
      <td colspan="2">&nbsp; 
      <iframe id="PopupIframe" src="" runat="server" height="300px" width="480px"></iframe> 
      </td> 
     </tr> 
    </table> 
    </div> 

的JavaScript打開和關閉彈出

function closePopup() 
    { 
    document.getElementById('<%=PopupOuterDiv.ClientID%>').style.display = 'none'; 
    document.getElementById('<%=PopupInnerDiv.ClientID%>').style.display = 'none'; 
    } 

    function openPopup(PopupTitle, PopupURL) 
    { 
    document.getElementById('<%=PopupOuterDiv.ClientID%>').style.display = ''; 
    document.getElementById('<%=PopupInnerDiv.ClientID%>').style.display = ''; 
    document.getElementById('PopoupTitle').innerText = PopupTitle;  
    document.getElementById('<%=PopupIframe.ClientID%>').src = PopupURL;  
    } 

內容頁

呼叫彈出的窗口中從任何內容頁面。

openPopup('My Custom Popup', '../aspx/User.aspx'); 
1

你最好的選擇是javascript,也許是jquery的模態插件,但是......問題是,它也不是100%可靠的。許多人禁用JavaScript或可能沒有與該JS(一些舊手機等)的瀏覽器。