我正在尝试为不同的选项设置不同的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; ?>">
答案 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
}
}