IF语句中的不同window.onload事件

时间:2015-09-24 16:31:16

标签: javascript html

我正在尝试为不同的选项设置不同的onload事件。 例如:如果我的变量$ var == 1,则触发一个window.onload事件,如果变量$ var == 2,则触发另一个window.onload事件触发器。 但我的代码不起作用。我从id='alert'的隐藏输入中获取变量值是否有另一种方法来进行这种编码,以及我在这里做错了什么?
Thx家伙

这是我的代码

JavaScript:

<script type="text/javascript">

            function Onload(){

            var variable=document.getElementById("alert").value;

            if(variable.value=="1"){

                window.onload = function()
                {
                    swal({
                    title: "Example",
                    text: "Example123!",
                    type: "success",
                    showCancelButton: false,
                    confirmButtonClass: 'btn-success',
                    confirmButtonText: 'Close'
                    }); 
                };

            }
            if(variable.value=="2"){
                window.onload = function()
                {
                    swal({
                    title: "Example",
                    text: "Example1234",
                    type: "error",
                    showCancelButton: false,
                    confirmButtonClass: 'btn-danger',
                    confirmButtonText: 'Close'
                    }); 
                };
            }
            if(variable.value=="3"){

                window.onload==function(){

                    false;

                }

            }

            }       

</script>

HTML

<body onLoad='Onload();'>   
<input type='hidden' id='alert' name='alert' value="<?php echo $alert;  ?>">

2 个答案:

答案 0 :(得分:1)

当您可以使用<script>将变量放入json_encode部分时,无需使用隐藏输入。例如:

<script type="text/javascript">
(function() { // grouping the code into IIFE to prevent global scope pollution
  var modalIndex = <?php echo json_encode($alert); ?>;
  var modalOpts = {
    1: {
      title: 'Example1',
      text: 'Example1234',
      type: 'success',
      showCancelButton: false,
      confirmButtonClass: 'btn-success',
      confirmButtonText: 'Close'
    }, 
    2: {
      title: 'Example2',
      text: 'Example2341',
      type: 'warning',
      showCancelButton: false,
      confirmButtonClass: 'btn-danger',
      confirmButtonText: 'Close'
    }, 
  };
  if (modalIndex in modalOpts) {
    window.onload = function() {
      swal(modalOpts[modalIndex]); 
    } 
  }
})();

请注意,我1)删除了Onload函数,以便代码立即执行; 2)将选项分组为单个对象; 3)对服务器设置的配置部分的现有进行瞬态检查。

答案 1 :(得分:0)

window.onload正在触发您的Onload功能。在该功能中再次分配它不会重新触发它。相反,只需直接调用这些函数:

function Onload() {
    var variable = document.getElementById("alert").value;
    if (variable == "1") {

        swal({
            title: "Example",
            text: "Example123!",
            type: "success",
            showCancelButton: false,
            confirmButtonClass: 'btn-success',
            confirmButtonText: 'Close'
        });
    }
    if (variable == "2") {

        swal({
            title: "Example",
            text: "Example1234",
            type: "error",
            showCancelButton: false,
            confirmButtonClass: 'btn-danger',
            confirmButtonText: 'Close'
        });

    }
    if (variable == "3") {
        //just do nothing
    }

}