pion2000new 2025-02-10 21:41 采纳率: 40%
浏览 7

有關Chrome浏览器扩展,上傳檔案封阻特定類型

我的manifest.json文件:

{
  "manifest_version": 3,
  "name": "File Upload Blocker",
  "version": "1.0",
  "permissions": [
    "activeTab"
  ],
  "content_scripts": [
    {
      "matches": ["https://example.com/*", "https://another-example.com/*"],
      "js": ["background.js"]
    }
  ]
}

我的background.js文件:

document.addEventListener('change', function(event) {
  const input = event.target;
  if (input.type === 'file') {
    const files = input.files;
    for (let i = 0; i < files.length; i++) {
      const fileName = files[i].name.toLowerCase();
      if (fileName.endsWith('.bmp') || fileName.endsWith('.png') || fileName.endsWith('.gif')) {
        alert('不允许上传该文件类型:' + files[i].name);
        input.value = ''; // 清空文件输入
        break;
      }
    }
  }
});

我加入了Chrome浏览器扩展
但在真正上传档案时
只有跳出视窗「不允许上传该文件类型」提醒
但是却无法做到真正的封阻档案上传
甚至有些网站还没有跳出封阻提醒
我该入更改程式码

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2025-02-10 21:41
    关注

    以下回复引自免费微信小程序:皆我百晓生。 如问题解决,还请采纳。如仍有疑问,请回复留言或私信博主,以便获得更精准的帮助。

    在CHROME浏览器扩展中,如果想要上传的文件类型为JSON,你可以使用以下方法:

    1. 在MANIFEST.JSON文件中设置"PERMISSIONS"字段,指定允许扩展执行的操作权限。
    2. 设置一个名为"UPLOAD"的扩展对象,它将包含一些用于处理上传请求的方法和属性。
    3. 使用"FILE-UPLOAD-BLOCKER"扩展对象添加一个事件监听器来响应用户提交的文件。
    4. 在你的JAVASCRIPT文件中,使用ADDEVENTLISTENER()或EVENT.TARGET.ADDEVENTLISTENER()来触发这个事件。
    5. 在你的HTML页面中,通过JAVASCRIPT获取到这个事件监听器并监听其回调函数。
    6. 在回调函数中检查上传的文件是否是JSON,并根据需要处理这些文件。

    例如,在你的MANIFEST.JSON文件中设置如下内容:

    {
      "MANIFEST_VERSION": 3,
      "NAME": "FILE UPLOAD BLOCKER",
      "VERSION": "1.0",
      "PERMISSIONS": ["FILE", "STORAGE"],
      "CONTENT_SCRIPTS": [
        {
          "MATCHES": ["<ALL_URLS>"],
          "JS": ["UPLOAD.JS"]
        }
      ]
    }
    

    在这个例子中,当用户上传文件时,我们会在文件路径后面加上"FILE"和"STORAGE"两个关键词,以匹配文件类型和存储位置的限制。

    然后,在你创建的JAVASCRIPT文件中,你可以像这样编写处理JSON文件的逻辑:

    FUNCTION PROCESSJSONFILE(FILE) {
      // 处理JSON文件
    }
    
    // 添加一个事件监听器,处理上传的文件
    DOCUMENT.ADDEVENTLISTENER("DOMCONTENTLOADED", FUNCTION() {
      VAR FILE = DOCUMENT.GETELEMENTBYID('MY-FILE');
      IF (FILE.FILES && FILE.FILES[0]) {
        PROCESSJSONFILE(FILE.FILES[0]);
      }
    });
    

    以上就是解决CHROME浏览器扩展上传特定类型的文件问题的一种基本思路。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月10日