如何在Firefox扩展中使用Rollbar.js

我正在尝试将rollbar.js实现为Firefox扩展。但是,无法在“滚动条摘要”中加载它-从CDN加载.js文件-Firefox插件中不允许这样做。

因此,我对其进行了重新设计,并从本地文件中加载rollbar.js 。此解决方案可在Chrome扩展程序中使用,但是在Firefox插件中,我总是会收到“滚动条未定义” ..

这是我在 poppup.html ...

中使用的简化代码
<script>
  chrome.storage.local.get(['optins'],function(value) {

    var rollbarOptIn = true;

    window._rollbarConfig = {
        accessToken: "xxx",captureUncaught: true,captureUnhandledRejections: true,enabled: rollbarOptIn,payload: {
            environment: "{{ ENVironMENT }}",client: {
              source_map_enabled: true,code_version: "{{ VERSION }}",guess_uncaught_frames: true
            }
        }
    };
  });
</script>
<script type="text/javascript" src="scripts/rollbar.js" async="false"></script>
<script>
  /* ugly workaround with set timeout... */
  setTimeout(function(){
    ...
    Rollbar.error("test");
    ...
  },600);
</script>

我到底是..请帮助。

wxyxxlh 回答:如何在Firefox扩展中使用Rollbar.js

由于chrome.storage是异步的,因此其回调在rollbar.js之后运行,因此您可能在rollbar中的异步初始化与该回调之间具有特定于浏览器的竞争条件。

从您的HTML中删除<script>并尝试动态加载它,然后使用其onload事件:

chrome.storage.local.get('optins',({optins}) => {
  window._rollbarConfig = {
    // ...............
  };
  const el = document.createElement('script');
  el.src = 'scripts/rollbar.js';
  el.onload = useRollbar;
  document.documentElement.appendChild(el);
});

function useRollbar() {
  Rollbar.error("test");
  // ...............
}
本文链接:https://www.f2er.com/3142407.html

大家都在问