Javascript功能无法在Google Chrome中执行任务

时间:2012-12-21 22:05:46

标签: javascript google-chrome

我已经研究了这个问题一段时间了,考虑到谷歌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开发者控制台,但它从未注册过错误。

提前感谢您的帮助。

2 个答案:

答案 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,这可能会导致问题。您应该使用&gt;代替。