是否可以禁用弹出窗口的菜单栏?

时间:2014-10-03 02:57:39

标签: javascript popup

我需要用户在进入下一页之前在决策框中选择任一选项。现在的问题是如果用户点击弹出框上的“X”关闭,他们可以继续下一页而不选择选项。我怎么能从这里验证?任何帮助,将不胜感激。感谢

enter image description here

Javascript代码

var winConfirm = null;

function showConfirm() {
    var windowWidth = 250;
    var windowHeight = 100;
    var locX = (screen.width - 150 - windowWidth) / 2;
    var locY = (screen.height - 50 - windowHeight) / 2;
    var windowFeatures = "width=" + windowWidth + ",height=" + windowHeight + ",screenX=" + locX + ",screenY=" + locY + ",left=" + locX + ",top=" + locY;


    if ((winConfirm != null) && !winConfirm.closed) {
        winConfirm.close();
    }


    winConfirm = open("menubar = no", "winConfirm", windowFeatures);

    var theHTML = '' + '<BODY BGCOLOR="#DDDDDD">' + 
   '<CENTER><B><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FF0000">' + 'Please choose ?' + '</B></CENTER><FORM NAME="buttonForm"><BR/>
     <TABLE BORDER="0" WIDTH="100%" CELLPADDING="0" CELLSPACING="0">
     <TR>
     <TD width="40" ALIGN="CENTER"> &nbsp;</TD>
     <TD>' + '<INPUT TYPE="button" NAME="buttonname" VALUE="YES" STYLE="WIDTH:60;HEIGHT:30;FONT-WEIGHT:BOLD;" ONCLICK="self.close();opener.buttonClicked(0);">' + '&nbsp;' + '</TD>
     <TD ALIGN="CENTER"><INPUT TYPE="button"  NAME="buttonname" VALUE="NO" STYLE="WIDTH:60;HEIGHT:30;FONT-WEIGHT:BOLD;"  ONCLICK="self.close();opener.buttonClicked(1);">' + '</TD>
     <TD WIDTH="40"> &nbsp; </TD>
     </TR></TABLE></FORM></BODY>';

    winConfirm.document.writeln(theHTML);
}


function buttonClicked(buttonChoice) {
    var CONTACT_ID = "<%=CONTACT_ID%>";

    switch (buttonChoice) {
        case 0:
            winConfirm.close();
            break;
        case 1:
            popupWindow('/eascb/common/search/pop_contact_update_0.jsp');
            break;
        default:
            popupWindow('pop_covernote_add_0.jsp');
    }
}

3 个答案:

答案 0 :(得分:0)

您无法删除窗口选项,但您可以使用JavaScript在页面中创建自己的弹出框。只需让Javascript生成一个带有两个可点击按钮的DOM。此外,通过这种方式,您也可以完全控制美学。 我现在正在移动电话,但如果没有其他人打败我,我明天早上会给你写一个例子。

编辑 - 添加示例

我没有使用javascript生成它们,而是使用了html和css类,但它仍然应该显示我想要的内容。如果您无法访问html或css,我可以帮助您编写一些实际生成DOM的JavaScript。

http://jsfiddle.net/fcpxrkh0/

<div id="clickMe" onClick="clickMe()">Click Me!</div>

<div id="modal" class="hideModal">
    <p>Please select Yes or No</p>
    <div id="buttonYes" class="button" onClick="selected(this.id)">YES</div>
    <div id="buttonNo" class="button" onClick="selected(this.id)">NO</div>
</div>

<script>

    function clickMe() {
        document.getElementById('modal').className = "";
    }


    function selected(clicked_id) {

        var selectedOpt = clicked_id; 

        if (selectedOpt == 'buttonYes') {
            alert('Yes Clicked');
        }

        else {
            alert('No Clicked');
        }

    }

</script>

答案 1 :(得分:0)

您还可以使用confirm显示本机模式弹出窗口,用户必须选择“确定”或“取消”; How to create a dialog with “yes” and “no” options?

答案 2 :(得分:0)

查看小提琴demo。我所做的只是添加一个简单的标志来保持状态,如果点击了一个按钮,你可以相应地修改你的问题。

标志名称为somethingChosen,单击按钮后设置为true,否则将保持为false并继续请求打开窗口。