Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 在哪里放置Chrome扩展集成的Bugsnag脚本_Debugging_Google Chrome Extension_Bugsnag - Fatal编程技术网

Debugging 在哪里放置Chrome扩展集成的Bugsnag脚本

Debugging 在哪里放置Chrome扩展集成的Bugsnag脚本,debugging,google-chrome-extension,bugsnag,Debugging,Google Chrome Extension,Bugsnag,我第一次使用Chrome扩展,并尝试集成Bugsnag js错误报告 我发现了很多,但我不明白如何将bugsnag加载到扩展中。(例如,在后台脚本、内容脚本、background.html页面或其他地方)。您是否编写代码将脚本标记插入页面 错误建议配置 <script src="//d2wy8f7a9ursnm.cloudfront.net/bugsnag-2.min.js" data-apikey="YOUR-API-KEY-HERE"></script>

我第一次使用Chrome扩展,并尝试集成Bugsnag js错误报告

我发现了很多,但我不明白如何将bugsnag加载到扩展中。(例如,在后台脚本、内容脚本、background.html页面或其他地方)。您是否编写代码将脚本标记插入页面

错误建议配置

<script src="//d2wy8f7a9ursnm.cloudfront.net/bugsnag-2.min.js"
     data-apikey="YOUR-API-KEY-HERE"></script>
类似地,哪里是引用bugsnag脚本和修改bugsnag对象的最佳位置(例如

按照建议,允许扩展错误到达bugsnag


意识到这是一个非常基本的设置问题,但在为这个特定用例找到方向时遇到了一些困难。感谢您的建议!

您正在尝试包含一个外部脚本。这将是一个困难的问题-扩展主要希望所有的资源都与它们捆绑在一起

对于扩展页面(背景/弹出窗口),是的,您可以包括它,但是:

  • 您需要修改允许此代码作为例外的代码

  • 您必须显式地将其加载到https://,协议相对URL
    //…
    失败,因为源站有
    浏览器-extension://...
    URL

  • 对于内容脚本,它将更加复杂。您不能使用tag方法,因为
    标记中的任何内容都指向页面上下文,而不是页面

    因此,您需要使用
    executeScript
    注入它,之前使用XHR下载过它(您不能为
    executeScript
    指定远程URL,但可以指定包含代码的字符串)。显然,您需要使用替代方法


    请注意,Bugsnag可能会将代码绑定到本地:

    如果您希望避免额外的阻塞请求,可以在资产编译过程中包含javascript,以便将其内联到现有脚本文件中。唯一需要确保的是,在运行onload处理程序之前包含Bugsnag


    因此,以上所有内容都可以安全地忽略。但是,让脚本保持最新将取决于您。

    您正在尝试包含一个外部脚本。这将是一件困难的事情-扩展主要希望所有资源都与它们捆绑在一起

    对于扩展页面(背景/弹出窗口),是的,您可以包括它,但是:

  • 您需要修改允许此代码作为例外的代码

  • 您必须显式地将其加载到https://,协议相对URL
    //…
    失败,因为源站有
    浏览器-extension://...
    URL

  • 对于内容脚本,它将更加复杂。您不能使用tag方法,因为
    标记中的任何内容都指向页面上下文,而不是页面

    因此,您需要使用
    executeScript
    注入它,之前使用XHR下载过它(您不能为
    executeScript
    指定远程URL,但可以指定包含代码的字符串)。显然,您需要使用替代方法


    请注意,Bugsnag可能会将代码绑定到本地:

    如果您希望避免额外的阻塞请求,可以在资产编译过程中包含javascript,以便将其内联到现有脚本文件中。唯一需要确保的是,在运行onload处理程序之前包含Bugsnag


    因此,以上所有内容都可以安全地忽略。但要让脚本保持最新,这将取决于您。

    谢谢Xan!这个答案非常有用。我意识到,我可以在扩展名中包含一个
    供应商/bugsnag-2.min.js
    文件,而不是加载外部脚本。这得到了bugsnag报告,但仍然有效正在设置错误捕获设置!不确定是否需要在页面中嵌入外部脚本,以便Bugsnag捕获内容脚本错误。再次感谢您的回答!确实,这是一种可能性。感谢Xan!该回答非常有用。我意识到,我可以只包含一个
    供应商/Bugsnag-2.min.js
    文件在扩展中,而不是加载外部脚本。这得到了Bugsnag报告,但仍在进行错误捕获设置!不确定是否需要在页面中嵌入外部脚本,以便Bugsnag可以捕获内容脚本错误。再次感谢您的回答!确实,这是可能的。
    Uncaught ReferenceError: Bugsnag is not defined
    
    Bugsnag.beforeNotify = function (error, metaData) {
        error.stacktrace = error.stacktrace.replace(/chrome-extension:/g, "chromeextension:");
    }