detect if Chrome extension content script has been injected / content script include guard

前端 未结 2 1600
误落风尘
误落风尘 2020-12-31 20:37

I want to execute a content script function whenever a tab is updated. The problem is that, sometimes the tab update is ajax (without a page reload), while still changing th

2条回答
  •  时光取名叫无心
    2020-12-31 21:36

    Implementing an include guard is extremely easy:

    (function() {
        if (window.hasRun) return;
        window.hasRun = true;
        // Rest of code
    })();
    

    If you want to programatically inject a content script, consider using one of the webNavigation events (e.g. onCommitted) instead of chrome.tabs.onUpdated. Unlike the tabs events, the webNavigation events are also triggered for navigation within frames, and offer a way to declare an URL filter in advance.

提交回复
热议问题