我遇到了我現在正在使用的chrome web應用程序的問題。代碼工作找到一個正常的chrome瀏覽器,但Chrome Web Store的不喜歡我的代碼:在我的Chrome擴展中解決eval()
拒絕,因爲它違反了以下內容安全政策指令,以評估劇本:「劇本-src的‘自我’鍍鉻擴展資源」。
這裏是在我的代碼的部分,它包含一個eval()中的一個:通過我的對象通過「P」,所以它循環通過
function checkTimeToSinglePeriod(p) {
console.log("Check time for Period " + p + "...");
var TempBHour = "period" + p + ".bhour";
TempBHour = eval(TempBHour);
var TempBMin = "period" + p + ".bmin";
TempBMin = eval(TempBMin);
var TempEHour = "period" + p + ".ehour";
TempEHour = eval(TempEHour);
var TempEMin = "period" + p + ".emin";
TempEMin = eval(TempEMin);
}
該函數是從稱爲for循環:period1.bhour,period2.bhour等 Temp變量(TempEmin,TempEHour等)產生的period1.ehour的值可能類似於14,而不是像「period1.ehour」這樣的字符串。我也是在我的代碼中有一段使用eval()將創建的字符串切換爲數組名稱:
for (d = 1; d < 8; d++) { //Loop through days
for (l = 1; l < 8; l++) { //loop through lessons
itemToSave = "D" + d + "L" + l;
arrayToSave = "periodsArray" + d + "[" + (l - 1) + "]";
localStorage.setItem(itemToSave, eval(arrayToSave));
console.log(itemToSave + " | Saved");
}
}
在這裏的itemToSave是localStorage的關鍵和arrayToSave是在我的代碼數組: periodsArray1 [],periodsArray2 []等 因此,誰能幫我解決不使用eval()? 謝謝