包含不同的 JS 脚本,具体取决于 运行 是否在 chrome 扩展程序或 Web 中

Include different JS script depending if run inside chrome extension or web

我正在开发 chrome 扩展和 web js 应用程序。 我有一个 HTML 容器。

我需要这个container.html有

<script src="extension.js"> 

when 运行 in chrome extension and

<script src="web.js"> 

当 运行 网络版

(但不能同时拥有)

知道如何根据 运行 是否在扩展名中包含 1 个脚本吗?

您应该有一些 属性 或仅在 chrome 扩展环境中可用的全局对象,例如:chrome.cookies。然后您可以检查该对象或 属性 的存在并动态加载 javascript 文件,例如:

function loadScript(url, callback){

    var script = document.createElement("script")
    script.type = "text/javascript";

    script.onload = function(){
        callback();
    }
    script.src = url;
    document.getElementsByTagName("head")[0].appendChild(script);
}

if(chrome && chrome.cookies){
    loadScript('extension.js', function(){ //loaded })
}
else{
    loadScript('web.js', function(){ //loaded })
}