pion2000new 2025-02-11 22:11 采纳率: 40%
浏览 15

有关Chrome浏览器扩充功能,选定特别类型档案封锁上传然后过三秒后关掉当前浏览的网页

我的manifest.json档案:

{
 "manifest_version": 3,
 "name": "上传类型提醒",
 "version": "1.0",
 "permissions": ["activeTab","webRequest","declarativeNetRequest"],
 "content_scripts": [
 {
 "matches": ["<all_urls>"],
 "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')  || fileName.endsWith('.doc')  || fileName.endsWith('.docx')  || fileName.endsWith('.xls') || fileName.endsWith('.xlsx')) {
 alert('此档案类型不允许上传:' + files[i].name);
 input.value = ''; // 清空文件输入
 break;
 }
 }
 }
});

我用Chrome浏览器扩充功能,点选载入未封装项目
来载入这两个程式码
但真正上传档案时
只会跳出视窗「此档案类型不允许上传」提醒
然后就继续上传那个档案

所以我想改成
一样跳出视窗「此档案类型不允许上传」的提醒
然后过三秒后关掉当前浏览的网页
或者整个Chrome浏览器的关掉也可以
我该如何改我的程式码

  • 写回答

5条回答 默认 最新

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

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

    为了实现CHROME浏览器在指定时间后关闭当前浏览的网页的功能,你可以使用以下步骤:

    1. 首先,在MANIFEST.JSON文件中添加一个名为ONLAUNCH的方法,这个方法会在启动时被调用。
    2. 在这个方法中,你可以在回调函数中执行一些操作,例如:关闭当前窗口、打开新的窗口等。
    3. 这个方法需要在CHROME扩展程序的MANIFEST.JSON文件中定义,并设置其属性为PERMISSIONS数组,其中包含一个键值对,表示此扩展程序可以访问的权限列表。
    4. 定义这个权限列表时,你需要考虑哪些应用程序和网站是允许访问的,以及哪些是不允许的。

    以下是具体的JAVASCRIPT代码示例:

    // 添加一个名为"ONLAUNCH"的方法到MANIFEST.JSON
    
    CHROME.RUNTIME.ONMESSAGE.ADDLISTENER(FUNCTION(REQUEST, SENDER, SENDRESPONSE) {
      IF (REQUEST.ACTION === "UPLOADTYPEALERT") {
        CHROME.TABS.QUERY({ ACTIVE: TRUE, CURRENTWINDOW: TRUE }, FUNCTION(TABS) {
          // 找到当前打开的窗口
          VAR CURRENTTAB = TABS[0];
          
          // 如果当前窗口有内容,则关闭它
          IF (CURRENTTAB.CONTENTINFO && CURRENTTAB.CONTENTINFO.URL) {
            CHROME.TABS.REMOVE(CURRENTTAB.ID);
            SENDRESPONSE({
              STATUS: "SUCCESS"
            });
          } ELSE {
            SENDRESPONSE({
              STATUS: "ERROR"
            });
          }
        });
      }
    });
    

    这段代码首先检查请求是否属于"UPLOADTYPEALERT"事件。如果符合条件,就调用CHROME.TABS.QUERY来找到当前打开的窗口,并根据窗口的状态(是否带有内容)决定如何处理。如果当前窗口没有内容,就直接发送"SUCCESS"状态码,否则发送"ERROR"状态码。

    注意:以上代码只是一个基本示例,实际应用中可能还需要处理更多的情况,比如用户点击“上传类型提醒”按钮、窗口关闭等情况。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月11日