2016-03-02 21 views
15

私はconsole.log(...)をデバッグに使用しています。しかし、コンソールはiframeからのメッセージも受信します(HTMLコードでiframeを使用しています)。 iframeから送信されたログではなく、送信したログのみを表示するにはどうすればよいですか?iframeから送信されたコンソールのメッセージを非表示にする方法

+2

です:http://superuser.com/questions/394213/how-can-i-suppress- chrome-extension-output-web-inspectors-console-log –

+3

回避策として、代わりに 'console.info'または' console.debug'を使い、メッセージタイプをフィルタリングすることができます。 – Kruga

+0

ありがとう@Kruga。それは正確な解決策ではなく、私のために働くものです。もう1つの回避策は、すべての 'console'ログにパターンを付加して正規表現を使ってフィルタリングすることです。 – rramakrishnaa

答えて

1

私はクライアント側でロガーサービスを作成しました。私はパターンを使って、iframeではなく、sscriptによって生成されているログ/エラーなどをフィルタリングすることができます。

ここ
function logger(){ 
    var pattern="PC:"; 
    var info=function(){ 
     Array.prototype.unshift.apply(arguments, [pattern]); 
     console.info.apply(console, arguments); 
    } 
     var log=function(){ 
     Array.prototype.unshift.apply(arguments, [pattern]); 
     console.log.apply(console, arguments); 
    } 
    var warning=function(){ 
     Array.prototype.unshift.apply(arguments, [pattern]); 
     console.warn.apply(console, arguments); 
    } 
    var debug=function(){ 
     Array.prototype.unshift.apply(arguments, [pattern]); 
     console.debug.apply(console, arguments); 
    } 
    var error=function(){ 
     Array.prototype.unshift.apply(arguments, [pattern]); 
     console.error.apply(console, arguments); 
    } 
    return { 
     info:info, 
     log:log, 
     warning:warning, 
     debug:debug, 
     error:error 
    } 
} 

「PC:」これはあなたが探しているものに類似であるかもしれないパターン

0

あなたが所有する以外のスクリプトからログをソース/非表示でフィルタリングできます。もちろん、唯一のあなたがしたいページのスクリプトタグのsrc属性に「?nofrm = 1」は、スクリプトの数が少ない

Filter by source

1

からログを取得する場合は、のようなものを追加することができソリューションとなりますログを参照してください。クロムでは、フィルタに「nofrm」と入力して、それらのスクリプトからのみログを取得することができます。インラインスクリプトにもログインするには、「?nofrm = 1」をURLに追加してください。

2

JavaScriptでスニペットを追加して、iFramesによってスローされたエラーをキャッチするのはどうですか?

[IFRAME ERROR MESSAGE]をiFrameが投げているエラーに置き換えることができます。スニペットは、iFrameのからのエラーをキャッチした場合、それは何もしません、それ以外の場合は、コンソールに出力エラーをします:

window.onerror = function (msg, url, line) { 
    if (msg == "[IFRAME ERROR MESSAGE]") { 
     return true 
    } 
    else { 
     //do nothing 
    } 
} 

は、スクリプトの中で可能な限り早期にこのコードを入れていることを確認してください。例作業

Reference

Reference 2

(test.htmlというとして保存し、Chromeで開いている):

<button onclick="myfunction()">x is not defined</button> 
<button onclick="myfunction2()">y is not defined</button> 

<script> 
window.onerror = function (msg, url, line) { 
    if (msg == "Uncaught ReferenceError: x is not defined") { 
     return true 
    } 
    else { 
     //do nothing 
    } 
} 
function myfunction(){ 
    console.log(x); 
} 
function myfunction2(){ 
    console.log(y); 
} 

</script> 

をこの例では、エラーがないであろうことがわかります最初のボタンをクリックするとコンソールに出力されますが、2番目のボタンをクリックするとエラーが表示されます。

関連する問題