javascript - 在浏览器上下载选定的文本 - 浏览器扩展

标签 javascript google-chrome google-chrome-extension browser-extension

我正在尝试在我的浏览器(mozilla 或 chrome)上下载选定的词或文本。当我选择一个词并右键单击它时,我可以看到选项“将所选文本保存到文件”选项。但我无法使用该功能。它不下载文本。我对扩展写作很陌生。我想通过简单的例子来学习东西

list .json

    {
        "manifest_version":2,
        "version":"1.0",
        "name": "Selected Text Saver",
        "permissions": [
            "contextMenus",
            "activeTab"
        ],
        "background": {
        "scripts": ["main.js"]
        }
    }

主要.js

    mouse1 = function(){
        chrome.tabs.executeScript({
            file: 'saver.js'
        });
    };

    chrome.contextMenus.create({
        title: "Save this selected text to file",
        contexts:["selection"],
        onclick: mouse1
    });

保存器.js

    var text = window.getSelection().toString();
    var bb = new Blob([text], {type: 'text/plain'});
    var a = document.createElement('a');
    a.download = document.title.slice(0, 50).replace('/*[<>:/\\|?*]*/g', '') + '.txt';
    a.href = window.URL.createObjectURL(bb);
    a.dataset.downloadurl = ['text/plain', a.download, a.href].join(':');

最佳答案

问题中的 JavaScript 不会对创建的 <a> 执行任何进一步的任务元素跟随 a.dataset.downloadurl = ['text/plain', a.download, a.href].join(':'); .

附加创建的<a>元素到 document.body并调用a.click()提示用户提供文件下载。

关于javascript - 在浏览器上下载选定的文本 - 浏览器扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45271987/

相关文章:

javascript - 有没有办法让浏览器中的时间快进来触发页面上设置的setTimeouts?

jquery - 如何在谷歌浏览器扩展页面操作background.js中使用jquery?

javascript - Angular JS,UI-Bootstrap 无法加载模板

javascript - 自动从网络打印 Excel 文件

javascript - Firefox webgl 上的 Websocket

google-chrome - 在 Chrome 中录制屏幕时如何达到 60 FPS?

javascript - 如何为 Chrome 扩展创建卸载 url 和图标 url?

Javascript 发布到表单 - 如果字段隐藏则无法工作

c# - 将域名附加到编辑器的电子邮件中

Java Selenium ChromeDriver SendKeys 真的很慢