用C#编写chrome扩展名?

用C#编写chrome扩展名?,c#,asp.net-mvc,google-chrome-extension,C#,Asp.net Mvc,Google Chrome Extension,今天我第一次开始研究Chrome的扩展,我有一个非常愚蠢的问题,我相信谷歌搜索的答案是否定的,但我只是想从这里的社区中确认一下 是否可以使用C#来编写代码而不是javascript 在chrome扩展中呈现HTML时是否可以使用部分视图(ASP.NET MVC) 我在VS市场找到了这个 是否有其他具有引导等功能的模板 干杯无需在JavaScript中分发chrome扩展 所以从技术上讲,您可以编写任何可以编译为JavaScript的东西,比如Dart或TypeScript 请参阅此处以获取简要介

今天我第一次开始研究Chrome的扩展,我有一个非常愚蠢的问题,我相信谷歌搜索的答案是否定的,但我只是想从这里的社区中确认一下

  • 是否可以使用C#来编写代码而不是javascript
  • 在chrome扩展中呈现HTML时是否可以使用部分视图(ASP.NET MVC)
  • 我在VS市场找到了这个 是否有其他具有引导等功能的模板

  • 干杯

    无需在JavaScript中分发chrome扩展

    所以从技术上讲,您可以编写任何可以编译为JavaScript的东西,比如Dart或TypeScript


    请参阅此处以获取简要介绍:

    Chrome Extension在浏览器中运行,因此您不能在Chrome Extension开发中使用C

    同样,Chrome扩展在浏览器中运行,因此您不能在Chrome扩展开发中使用ASP.NET MVC,但您可以在服务器上使用ASP.NET MVC或任何其他语言生成视图,并使用ajax在Chrome扩展中渲染它们


    看看这个:

    从技术上讲,您可以使用C#binary作为与浏览器中JavaScript部分对话的语言

    但是,这会使扩展分发变得复杂,因为您无法将这两个组件绑定到CWS;必须单独安装本机主机组件


    只有当您有正当理由在浏览器沙箱中执行一些不可能的操作时,才应使用此选项。

    使用Blazor并将其作为普通html/css编写?尽管您仍然需要构建blazor项目,但我认为用C#编写扩展在技术上是可行的。

    您可以用C#创建浏览器扩展。 具体来说,使用客户端Blazor

    要发布,需要执行以下操作

    首先,您可以像普通的独立应用程序一样发布。

    然后,从目录名中删除下划线。因为它不能在扩展中使用

    # remove underbar from directory name
    mv _framework/_bin _framework/bin
    mv _framework framework
    # rewrite
    sed 's/_bin/bin/g' framework/blazor.webassembly.js
    sed 's/_framework/framework/g' framework/blazor.webassembly.js index.html
    
    然后,添加manifest.json并像这样设置CSP

    "content_security_policy": "script-src 'self' 'unsafe-eval' 'sha256-v8v3RKRPmN4odZ1CWM5gw80QKPCCWMcpNeOmimNL2AA='; object-src 'self'",
    
    Blazor引导脚本将脚本标记添加到html中,所以您应该添加脚本哈希以允许执行引导脚本

    这是我创建的示例应用程序。 这是评论(用日语写的)。

    在Blazor WebAssembly的帮助下,使用C#now,您完全可以(相当)轻松地创建Chrome扩展

    如果您仍然对尝试感兴趣,或者其他人感兴趣,我已经在存储库中创建了一个包。只需按照链接中的步骤创建项目

    有了这个包,您可以在扩展中获得所需的东西。目前它支持后台、弹出窗口(浏览器操作)、选项页甚至内容脚本(需要额外设置)。只需构建项目,然后就可以从构建的输出中加载未打包的扩展


    ChromeExtensionsAPI可以在Razor页面中访问,也可以通过依赖项注入访问。API是从另一个包导入的。

    我将从这里开始,如果没有文档记录,可能是不可能的。您必须分发javascript,所以任何产生javascript的东西……都很好!!很好的提示。