我想將錯誤傳遞給警報,以警告用戶他們在代碼中犯了錯誤,即使他們沒有打開控制檯。如何發送控制檯消息和錯誤以提醒?
var doc=(frame.contentWindow.document || obj.contentDocument|| obj.contentWindow);
var head = doc.getElementsByTagName('head')[0];
var scriptElement = doc.createElement('script');
scriptElement.setAttribute('type', 'text/javascript');
scriptElement.text = scripts;
try{
head.appendChild(scriptElement);
}
catch(e){ alert("error:"+e.message +" linenumber:"+e.lineNumber);}
當腳本包含錯誤時,appendChild會引發錯誤。它直接進入控制檯,我希望它顯示在警報中,因爲它適用於孩子,並且他們可能不檢查控制檯。 try catch塊不會捕獲錯誤。 我試着用eval(腳本)。
try{
eval(scripts);} catch(e){ alert("error:"+e.message +" linenumber:"+e.lineNumber);}
這確實有效,但這意味着代碼被執行了兩次,而且在某些情況下非常不方便。
我嘗試猴子修補console.error:
console.log=function(){alert("taking over the log");}
console.error=function(){alert("taking over the log");}
,但是當我從字面上使用console.error,只有工作。不是在發生實際錯誤時。 如果出現實際錯誤(如果不是console.error),那麼什麼函數會將錯誤發送到控制檯?我可以訪問它並更改它嗎? 任何想法?幫助將非常感激。 感謝Jenita
它真的不適合我。即使是像這樣最簡單的形式: – Jenita
我已將它粘貼在底部 – Jenita