Google chrome extension 覆盖下载具有Chrome扩展名的文件类型

Google chrome extension 覆盖下载具有Chrome扩展名的文件类型,google-chrome-extension,Google Chrome Extension,我正在尝试构建一个chrome扩展,它覆盖文件下载并在浏览器中显示。例如,如果单击指向“.csv”文件的链接,我希望它在浏览器中呈现,而不是下载 Chrome已经为PDF类型和 所以这应该是可能的,只是不确定如何捕捉该事件?您可以随时查看XML树代码:) 如果您只需要使用链接,而不需要从地址栏或文件>打开打开文件,则可以构建一个内容脚本,为每个链接添加一个单击事件侦听器 在事件侦听器函数中: 在第一行添加e.preventDefault(),以防止浏览器“跟踪”链接 使用link href值,使

我正在尝试构建一个chrome扩展,它覆盖文件下载并在浏览器中显示。例如,如果单击指向“.csv”文件的链接,我希望它在浏览器中呈现,而不是下载

Chrome已经为PDF类型和


所以这应该是可能的,只是不确定如何捕捉该事件?

您可以随时查看XML树代码:)

如果您只需要使用链接,而不需要从地址栏或文件>打开打开文件,则可以构建一个内容脚本,为每个链接添加一个单击事件侦听器

在事件侦听器函数中:

  • 在第一行添加
    e.preventDefault()
    ,以防止浏览器“跟踪”链接

  • 使用link href值,使用XMLHttpRequest获取数据

  • 在XMLHttpRequest回调中,打开一个新选项卡并相应地呈现内容

  • 显然,在许多方面,这不是一个很好的解决方案:

    • 您希望浏览器像往常一样处理“普通”链接

    • 您如何判断文本文件是否包含逗号分隔的值(例如),除非查看文件扩展名(当然,该文件扩展名可能不可靠)


    您是否特别考虑.csv文件和/或其他特定类型的内容?

    在github上的我的扩展中可以找到一个与前面的答案中所示的内容一致的、专门为csv文件设计的实现:

    此外,使用新的(ish)chrome,现在还可以沿着以下路线直接接近:

  • 收听onBeforeRequest(这必须在后台脚本中-请参阅background.js)
  • 检查这是否是CSV文件(mimetype或文件扩展名)
  • 如果是,请取消请求,然后使用xhr显示数据

  • 可以在该扩展的分支中找到此功能的工作版本:

    不确定,但这可能是相关的,并且