2012-12-21 69 views
1

我一直在研究這個問題一段時間,並且考慮到Google Chrome瀏覽器似乎對Javascript有很多問題,我一直無法找到任何人有這個相同的問題。Javascript功能無法在谷歌瀏覽器中執行任務

問題是這樣的:當錨點調用一個替換div內容的新函數時,它在返回到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中工作正常。只有當它試圖運行序言四時,它纔會嚇壞了,然後回去。我也嘗試過Chrome開發者控制檯,但它從未註冊過錯誤。

非常感謝您的幫助。

+1

Chrome瀏覽器JavaScript問題?像什麼?這一切都很模糊。嘗試在jsfiddle.net上模擬您的問題並在此處發佈鏈接。 – Aesthete

+1

你可以花費'怪胎'嗎?記錄錯誤?如果是這樣,哪些錯誤?導致您的顯示器流血?如果是這樣,什麼顏色? – Dancrumb

+0

由於該問題已從'stackoverflow.com'用戶的'programmers.stackexchange.com',[這是禮物](http://jsfiddle.net/89f5J/)遷移出來。爲你打造一個小提琴並且看起來很有效,現在正確地描述你的問題。謝謝! –

回答

0

我不知道是否還有其他問題,但>>Continue>>不完全符合標準的HTML,這可能會導致問題。您應該改用&gt;

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 
} 
+0

這很有幫助!但是,如果我只是使用一個按鈕,因爲它是所有相同的頁面我假設Javascript會保留我打電話沒有提交表單框的價值? – user75709

+0

是的,它會的。在評估表單框的內容後,可以使用document.getElementById('yourname')。value =「」,它將重置該字段。 – danronmoon

相關問題