Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在何处存储chrome扩展的HTML代码段_Javascript_Html_Google Chrome_Google Chrome Extension - Fatal编程技术网

Javascript 在何处存储chrome扩展的HTML代码段

Javascript 在何处存储chrome扩展的HTML代码段,javascript,html,google-chrome,google-chrome-extension,Javascript,Html,Google Chrome,Google Chrome Extension,我正在开发一个chrome扩展,它将向页面中注入HTML的小片段。扩展基本上只是一个插入HTML的内容脚本 现在,HTML的某些部分相当大,所以可以选择用JavaScript从头开始构建它们,但不是首选。在我的内容中使用字符串也是一种选择,但我认为它会变得混乱 最好的方法是使用一个包含HTML块的单独文件,并让我的内容脚本根据用户的操作选择一个块。我现在的问题是chrome扩展是否有这样的功能。您可以将HTML存储在单独的文件中,然后使用ajax从这些文件中读取数据。您还可以在一个文件中存储多个

我正在开发一个chrome扩展,它将向页面中注入HTML的小片段。扩展基本上只是一个插入HTML的内容脚本

现在,HTML的某些部分相当大,所以可以选择用JavaScript从头开始构建它们,但不是首选。在我的内容中使用字符串也是一种选择,但我认为它会变得混乱


最好的方法是使用一个包含HTML块的单独文件,并让我的内容脚本根据用户的操作选择一个块。我现在的问题是chrome扩展是否有这样的功能。

您可以将HTML存储在单独的文件中,然后使用ajax从这些文件中读取数据。您还可以在一个文件中存储多个HTML块,通过ajax读取文件,然后使用regexp提取所需的块。

您可以将它们存储在后台页面中,并将消息从内容脚本传递到后台页面,以获取有问题的HTML块,并通过回调函数将它们传回

在内容脚本中

function grabHTML(blockId) {
  chrome.runtime.sendMessage({'get-html': blockId },insertHTML);
}
function insertHTML (blockId,HTML) { 
   /* your insertion logic goes here */ 
}
在background.js中

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
  if (request['get-html']) {
     var HTMLel = document.getElementById(request['get-html']);
     if (HTMLel) {
       sendResponse(request['get-html'],HTMLel.innerHTML);
     }
  }
});
在backgound.html中

<html>
  <head><script src="background.js"></script></head>
  <body>
    <div id="block-1"> ... </div>
    <div id="block-2"> ... </div>

    <div id="block-n"> ... </div>
 </body>

... 
... 
... 

对不起,我想你不明白这个问题。我需要将它们存储在扩展文件系统中。是的,我现在正在查看选项。我想知道是否没有内部的方法来读取文件,而不是进行ajax调用。似乎没有。
chrome.fileSystem
API只支持读取用户通过
chrome.fileSystem.chooseEntry
手动选择的文件。谢谢您的回答,我看到它有点晚了。你知道选择这种方法比AJAX实现有什么好处吗?我还没有测试过,但我认为主要的好处是速度,因为HTML片段已经在内存中了,你不需要处理对文件系统的调用。