我已经研究了这个问题一段时间了,考虑到谷歌Chrome似乎与Javascript有很多问题,我一直无法找到有同样问题的人。
问题是:当锚调用替换div内容的新函数时,它会在Javascript进行任何更改之前恢复为div的默认内容之前显示正确的结果。
这是脚本:
function prologueThree() {
document.getElementById('content').innerHTML = document.getElementById('prologue3').innerHTML;
}
function prologueFour() {
userName = document.getElementById('yourname').value;
if(userName.length === 0) {
alert("Erm... are you sure that\'s your name?");
prologueThree();
} else {
document.getElementById('content').innerHTML = '<center> \
<img src="http://pokemonroleplay.thedevhome.net/images/Gameboy/characters/red.png"><br> \
Right, so your name is ' + userName + '! \
<br><br> \
<a onclick="prologueFive()"><button>>>Continue>></button></a></center>';
}
}
这只是脚本的一小部分,但整个过程在Firefox中运行良好,前三个序言功能在Chrome中运行良好。只有当它试图运行prologueFour它才会惊慌失措然后回去。我也尝试过Chrome开发者控制台,但它从未注册过错误。
提前感谢您的帮助。
答案 0 :(得分:2)
我去了你的site
我注意到你正在将onclick
绑定到表单中的submit
按钮,而不会阻止执行默认行为,默认行为是表单提交,刷新页面,从而使你失去位置和回到开头。使用普通的旧按钮或锚标记,就像您之前的序言一样。如果您因任何原因坚持使用提交,请阻止默认行为:
function prologueFour(e) {
typeof e.preventDefault === 'function'
? e.preventDefault()
: e.returnValue = false;
// now rest of code can continue without page refresh
}
答案 1 :(得分:0)
我不知道是否还有其他问题,但>>Continue>>
并不完全符合标准的html,这可能会导致问题。您应该使用>
代替。