带有InnerHTML的Javascript函数不';行不通

带有InnerHTML的Javascript函数不';行不通,javascript,function,innerhtml,Javascript,Function,Innerhtml,我正在尝试使用javascript在函数中的何处创建一个自定义警报,您将把它放在希望重定向的何处。这就是我所拥有的: function CustomAlert(){ this.render = function(dialog, redirect){ var winW = window.innerWidth; var winH = window.innerHeight; var dialogoverlay = document.getElementById('dialogoverlay'); va

我正在尝试使用javascript在函数中的何处创建一个自定义警报,您将把它放在希望重定向的何处。这就是我所拥有的:

function CustomAlert(){
this.render = function(dialog, redirect){
var winW = window.innerWidth;
var winH = window.innerHeight;
var dialogoverlay = document.getElementById('dialogoverlay');
var dialogbox = document.getElementById('dialogbox');
dialogoverlay.style.display = "block";
dialogoverlay.style.height = winH+"px";
dialogbox.style.left = (winW/2) - (550 * .5)+"px";
dialogbox.style.top = "100px";
dialogbox.style.display = "block";

dialogbox.innerHTML = "<div id='dialogboxhead'><img src="/images/logo.png"></img></div> +
    "<div id='dialogboxbody'>" + dialog + "</div>" +
    "<div id='dialogboxfoot'><div class='alertokbtn'><button onclick='Alert.ok('" + redirect + "')'>OK</button></div></div>";

}
this.ok = function(redirect){
document.getElementById('dialogbox').style.display = "none";
document.getElementById('dialogoverlay').style.display = "none";

window.location = redirect;
}
}
var Alert = new CustomAlert();
函数CustomAlert(){
this.render=函数(对话框,重定向){
var winW=window.innerWidth;
var winH=window.innerHeight;
var dialogoverlay=document.getElementById('dialogoverlay');
var dialogbox=document.getElementById('dialogbox');
dialogoverlay.style.display=“block”;
dialogoverlay.style.height=winH+“px”;
dialogbox.style.left=(winW/2)-(550*.5)+“px”;
dialogbox.style.top=“100px”;
dialogbox.style.display=“block”;
dialogbox.innerHTML=”+
“”+对话框+“”+
“好”;
}
this.ok=函数(重定向){
document.getElementById('dialogbox').style.display=“无”;
document.getElementById('dialogoverlay').style.display=“无”;
window.location=重定向;
}
}
var Alert=新的CustomAlert();
这是我在HTML中建立的运行函数:

<div id="dialogoverlay"></div>
<div id="dialogbox">
  <div>
     <div id="dialogboxhead"></div>
    <div id="dialogboxbody"></div>
<div id="dialogboxfoot"></div>
</div>
</div>    

<button class="button" onClick="Alert.render('Alert test. This text can be anything by the way', 'https://google.com');" id="btn1">Get alert</button>

警惕

它会打开包含文本和所有内容的函数,但当我按“确定”时,它不会重定向我。

这是代码,您可以尝试

函数getObj(ID){ 返回文档.getElementById(ID); } 函数CustomAlert(){ this.render=函数(对话框,重定向){ getObj('dialogoverlay').style.display='block'; getObj('dialogboxbody')。innerHTML=dialog; getObj('dialogboxfoot').innerHTML=“确定关闭”; } this.ok=函数(重定向){ window.location=重定向; } this.close=函数(){ getObj('dialogoverlay').style.display=“无”; } } var Alert=new CustomAlert();
正文{
边际:0px;
填充:0px;
}
#对话框覆盖{
位置:绝对位置;
左:0;
右:0;
底部:0;
排名:0;
背景:rgba(0,0,0,2);
显示:无;
文本对齐:居中;
}
#对话框{
z指数:9999;
宽度:300px;
高度:200px;
填充:10px;
背景:白色;
保证金:100像素自动;
}
#对话框盒头img{
宽度:100px;
保证金:30px 10px 10px 10px;
}
#对话框框脚{
溢出:隐藏;
背景:rgba(0,0,0,1);
填充物:5px;
}
#左{
浮动:左;
}
#对{
浮动:对;
}


获取警报
请尝试以下代码:

函数CustomAlert(){
this.render=函数(对话框,重定向){
var winW=window.innerWidth;
var winH=window.innerHeight;
var dialogoverlay=document.getElementById('dialogoverlay');
var dialogbox=document.getElementById('dialogbox');
dialogoverlay.style.display=“block”;
dialogoverlay.style.height=winH+“px”;
dialogbox.style.left=(winW/2)-(550*.5)+“px”;
dialogbox.style.top=“100px”;
dialogbox.style.display=“block”;
dialogbox.innerHTML=`
${dialog}
好`;
}
this.ok=函数(重定向){
document.getElementById('dialogbox').style.display=“无”;
document.getElementById('dialogoverlay').style.display=“无”;
window.location=重定向;
}
}
var Alert=new CustomAlert();


获取警报
粘贴完整代码。
dialogoverlay
dialogbox
ID丢失粘贴的代码有语法错误,特别是未替换的引号。为“确定”按钮生成的HTML不正确。它看起来像是
确定
。您能发现错误吗?(如果没有,请检查浏览器中的元素)@SumonSarker:这仍然无法生成正确的HTML。