以下罰款是代碼:什麼能在Greasemonkey的腳本停止運行Array.prototype.filter()運行在控制檯
function fil(val) {
console.log('fil'); // never written to console when run in greasemonkey
return true;
}
var temp = unsafeWindow.someobject;
console.log(temp); // looks fine
temp.filter(fil); // never happens in greasemonkey
如果我上運行同樣的代碼(當然沒有unsafeWindow)它在螢火蟲控制檯輸出相同的對象就好了。可能是什麼原因?
編輯說明:在greasemonkey中運行時,字符串'fil'永遠不會寫入控制檯,該控制檯顯示fil()永遠不會被調用。另外,如果我執行類似console.log(temp.filter(fil));
的操作,當代碼從greasemonkey運行時,我無法在控制檯中看到結果。 (雖然我知道它應該是因爲線上方告訴我temp
存在和代碼運行到這一點
你是什麼意思「它輸出很好」?你看到過濾的數組?螢火蟲控制檯會向你展示函數調用的結果,以方便使用,但這不是標準行爲,而如果你沒有明確要求你不會有任何輸出,你的代碼可以在greasemonkey中正常工作。 – Aaron
console.log('fil')是要求輸出嗎? 「輸出很好」意味着我可以在控制檯中看到字符串'fil'(多次) – blues
哦,從來沒有想過,我忽略了你的過濾函數,並且認爲你期望輸出過濾後的數組。我真的不知道,對不起。 – Aaron