您在JavaScript上引用的某些元素似乎在执行代码时不存在。
Elements that should exist before the JavaScript:
<对话框覆盖(dialogoverlay)对话框(dialogbox)对话框头(dialogboxhead)对话框正文(DialogBoxBoxBody)
Based on the error message, these elements DO exist:
<对话框覆盖
A few questions to clarify
<您在执行JavaScript时是否检查了元素是否存在?(dialogboxhead、dialogboxbody、dialogboxfoot)
这些元素是通过JavaScript创建的,还是直接添加到html页面<如果您直接添加它们,您是将它们添加到php页面还是通过WYSIWYGFirst Test
<打开Google Chrome加载网页(F12或Ctrl+Shift+I或菜单图标>更多工具>开发工具)
这将带您进入包含加载HTML的元素选项卡,并在页面JavaScript中单击任何元素,然后按Ctrl+F打开搜索框在ID前面键入符号#。E、 g.#dialogoverlay(对每个ID执行此操作)检查搜索是否找到任何内容。如果没有,那就是问题所在Second Test 更换您的代码,看看会发生什么(我没有测试这段代码,只是试一试)
function CustomAlert(){
this.render = function(dialog){
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";
// ---> CODE CHANGES FROM HERE
dialogbox.innerHTML = "<div id=\'dialogboxhead\' style=\'color:red; background-color: yellow;\'><a>Test 2</a></div>" +
"<div id=\'dialogboxbody\' style=\'color:red; background-color: yellow;\'>" + dialog + "</div>" +
"<div id=\'dialogboxfoot\' style=\'color:red; background-color: yellow;\'><div class=\'alertokbtn\'><button onclick=\'Alert.ok()\'>OK!!!!!!</button></div></div>";
// <--- TO HERE
}
this.ok = function(){
document.getElementById(\'dialogbox\').style.display = "none";
document.getElementById(\'dialogoverlay\').style.display = "none";
window.location.innerHTML = dialog;
}
}
var Alert = new CustomAlert();