2016-02-24 58 views
0

我想做一個拖放測驗,每個問題是在不同的HTML頁面上,我需要得到的結果,所以我做了一個JavaScript在外部JavaScript文件它工作在1個HTML頁面但它不在多個頁面上,比如..該函數正在重置自身。我是那麼不親編程所以這裏的櫃檯 js.js文件javascript的結果

var count=0; 
function fun() { 
    count=count+1; 

} 

function result(){ 
    document.write("your mark is " + count + " from 9") 

} 

和這裏的代碼在其他頁面..我做了3只是爲了測試它

if (slotNumber == cardNumber) { 
    ui.draggable.addClass('correct'); 
    ui.draggable.draggable('disable'); 
    $(this).droppable('disable'); 
    ui.draggable.position({ of: $(this), my: 'left top', at: 'left top' }); 
    ui.draggable.draggable('option', 'revert', false); 
    correctCards++; 
    fun(); 
    } 

所以如何我可以在不同的頁面上調用它,而不必重置它自己嗎?

+1

Cookie或localstorage。 – Andy

+0

@Andy你能詳細告訴我,因爲我不明白 – Dee994

+1

[在頁面間傳遞javascript變量](http://stackoverflow.com/questions/11581543/passing-javascript-variables-between-pages) – JJJ

回答

1

您可以使用localStorage來存儲同一域的所有頁面的計數值。

function fun() { 
    var count = localStorage.getItem("count") || 0; 
    localStorage.setItem("count", ++count); 
} 

function result() { 
    document.write("your mark is " + (localStorage.getItem("count") || 0) + " from 9") 
} 
+0

先生您是否有任何想法如何在使用本地存儲到數據庫後插入計數值? 並非常感謝你的工作完美 – Dee994

+0

您可以使用ajax http://api.jquery.com/jquery.ajax/向服務器端發送值。 –

2
localStorage.setItem("count",count); 

,那麼你可以從不同的頁面與

var count= localStorage.getItem("count"); 
0

稱之爲試試這個。這會記住爲連續頁面加載計數(除非您的瀏覽器不支持它,在這種情況下,它將在頁面加載時重置爲0)。

function lstorage(key, val) { 
    if(typeof(Storage) !== "undefined") { 
     if(typeof(val) !== "undefined") { 
      localStorage.setItem(key, val); 
     } else { 
      return localStorage.getItem(key); 
     } 
    } 
} 

var count=lstorage("savedCount") || 0; 
function fun() { 
    count++; 
    lstorage("savedCount", count); 
} 
+0

是否有仍然是瀏覽器沒有localStorage支持? –

+0

@JanDvorak可能不是,但它不能傷害檢查,對不對? – Neil

+0

@JanDvorak請參閱http://caniuse.com/#feat=namevalue-storage – Dropout

0

下面是Cookie的示例。

// Set a cookie 
function setCookie(cname, cvalue, exdays) { 
    var d = new Date(); 
    d.setTime(d.getTime() + (exdays*24*60*60*1000)); 
    var expires = "expires="+d.toUTCString(); 
    document.cookie = cname + "=" + cvalue + "; " + expires; 
} 

// Get a cookie 
function getCookie(cname) { 
    var name = cname + "="; 
    var ca = document.cookie.split(';'); 
    for(var i=0; i<ca.length; i++) { 
     var c = ca[i]; 
     while (c.charAt(0)==' ') c = c.substring(1); 
     if (c.indexOf(name) == 0) return c.substring(name.length,c.length); 
    } 
    return ""; 
} 

Source

0

如果網站僅使用HTML和JavaScript,那麼最好的選擇很可能是使用cookieslocal storage

例如,在測試開始時使用cookie,您將創建一個空的cookie,以存儲答案。格式是你的,但我喜歡用JSON狀結構的一切,所以我做到以下幾點:

創建一個函數來獲取所需的cookie:

function getAnswers(){ 
    var cookies = document.cookies; 
    for(var i=0; i<cookies.length; i++){ 
     if(cookies[i].split("=")[0] == "answers"){ 
      return cookies[i].split("=")[1]; 
     } 
    } 
    return null; 
} 

在開始測試:

document.cookie="answers=[]"; 

在每個答案:

var answers = JSON.parse(getAnswers()); 
answers.push({ 
    "question": questionNumber, //the id of the question 
    "answer": pickedAnswer //what user selects 
}); 
document.cookie("answers=" + JSON.stringify(answers)); 

在端在執行getAnswers()您最終將得到一組對象,其中包含有關每個提交的答案的信息。例如

[ 
    {"1": "A"}, 
    {"2": "D"}, 
    {"3": "C"}, 
    {"4": "B"} 
]