【发布时间】:2018-08-25 07:36:06
【问题描述】:
我目前正在阅读学习 PHP、MySQL 和 JavaScript 使用 jQuery、CSS 和 HTML5 第 4 版,作者 Robin Nixon。
我正在做一个 JavaScript 示例,涉及在确认警报对话框后向 DOM 添加一个元素,然后在另一个确认后将其删除。
但是,该页面无法在 Chrome 中正确加载。警报启动时,页面继续“加载”。说它会添加对象,当警报响起时说它会删除对象,但应该一直存在的文本直到第二个警报框关闭后才会加载。
添加的元素本身永远不会在 Chrome 中加载。然而,该页面在 Edge 和 Firefox 中都能正常工作。我需要调整 Chrome 中的设置以允许页面正确加载还是这正是 Chrome 当前设计的工作方式?
有问题的代码如下
<!DOCTYPE html>
<html>
<head>
<title>Adding Elements</title>
<script src='OSC.js'></script>
</head>
<body>
This is a document with only this text in it.<br><br>
<script type="text/javascript">
alert('Click OK to add an element')
newdiv = document.createElement('div')
newdiv.id = 'NewDiv'
document.body.appendChild(newdiv)
S(newdiv).border = 'solid 1px red'
S(newdiv).width = '100px'
S(newdiv).height = '100px'
newdiv.innerHTML = "I'm a new object inserted in the DOM"
tmp = newdiv.offsetTop
alert('Click OK to remove the element')
pnode = newdiv.parentNode
pnode.removeChild(newdiv)
tmp = pnode.offsetTop
function O(i) { return typeof i == 'object' ? i :
document.getElementById(i) }
function S(i) { return O(i).style }
function C(i) { return document.getElementsByClassName(i) }
</script>
</body>
</html>
感谢您的帮助!
编辑:OSC.js 文件中有 3 个函数 O、S 和 C,但我认为它们不是任何问题的原因。我将在下面发布它们。还直接将它们添加到 sn-p 中,这样代码就可以在这里工作。它们不在我的实际代码中。
function O(i) { return typeof i == 'object' ? i :
document.getElementById(i) }
function S(i) { return O(i).style }
function C(i) { return document.getElementsByClassName(i) }
【问题讨论】:
标签: javascript html google-chrome dom alert