javascript - Chrome 插件读取硬盘上的文本文件并替换文本框内容

标签 javascript plugins browser google-chrome-extension

我做了很多工作,我使用 sublime 来编码,然后需要将内容复制到基于网络的“编辑器”,这真的很糟糕。我希望此文本框/编辑器的内容自动填充我选择的文本文件的内容。

我无法控制将代码复制到的网页,因此无法注入(inject)小程序或类似内容。

我希望做的是创建一个插件(我正在使用chrome),用它我可以选择一个元素作为目标,选择硬盘驱动器上的一个文本文件(或者可能是指向的url的内容) localhost(如果这样更容易的话)并让插件扫描更改并更新。

知道如何解决这个问题吗?也许已经有类似的事情做了?我用谷歌搜索,但似乎无法找到正确的术语(如果已经有的话)。

最佳答案

获取扩展中本地文件内容的最简单方法可能是通过 XMLHttpRequest。例如,以下后台脚本获取/etc/passwd的内容并将其打印到background console :

function pollContent() {
    var x = new XMLHttpRequest();
    x.open('GET', 'file:///etc/passwd');
    x.onload = function() {
        // Do something with data, e.g. print to console
        console.clear();
        console.log(x.responseText);

        setTimeout(pollContent, 5000);
    };
    x.send();
}
pollContent();

为了使用之前的功能,您必须declare file://*/* 权限(或至少 file:///etc/passwd)启用“允许访问文件 URL”选项,位于 chrome://extensions/

只有后台页面可以获得file://访问权限。您需要使用 message passing API将内容放入带有 content script 的文本框中.

关于javascript - Chrome 插件读取硬盘上的文本文件并替换文本框内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21017607/

相关文章:

javascript - 可以在箭头函数内使用 for 循环简写吗?

javascript - GZIP是浏览器自动解压的吗?

javascript - 如何检测浏览器未最小化且相关选项卡未处于非事件状态

javascript - 如何强制 window.location 发出 HTTP 请求而不是使用缓存?

javascript - Javascript 中使用菊花链三元处理数组和平均值的解决方案?

javascript - 控制台响应 json

asp.net-mvc - 如何在 ASP.net/ASP.net MVC 中开发基于可插拔/可安装模块的应用程序

linux - Visual Studio 2010/3 的 Bash 脚本插件?

linux - Eclipse Helios 无法加载玩具插件

javascript - 内联 JavaScript 的最佳语法