代码之家  ›  专栏  ›  技术社区  ›  Mohamed Thasin ah

如何将外部javascript文件添加到目录中的所有HTML文件中?

  •  1
  • Mohamed Thasin ah  · 技术社区  · 6 年前

    有没有简单的方法可以将外部javascript文件添加或链接到所有 .html 用Java脚本在目录中进行文件。

    我有个文件夹叫 src 其中有n个 .html格式 文件可用。我需要提供 <script src="event_listener.js"></script> 在每个 .html格式 文件,我正在寻找通过javascript自动完成这一步。到目前为止,我试图读取如下文件,

    $.get(path_of_the_file, function( my_var ) {
        console.log(my_var)
    }, 'html');
    

    但是我正在 cross-domain 问题。所以我无法实现同样的目标。

    我不熟悉JavaScript。所以我没有办法解决这个问题。 如果我在python中有这个问题,我可以尝试下面这样的方法,

    import os
    file_path=os.listdir('path_of_the_files')
    for file_ in file_path:
       if file_.endswith('.html'):
          fo=open(file_path+'/'+file_,'r')
          i=0
          lines=fo.readlines()
          for line in lines:
             if line.strip().startwith("</html>"):
                  el=i
                  break
             i+=1
          lines.insert(["<script src="event_listener.js"></script>"],i)
          fo.close()
          fo=open(file_path+'/'+file_,'w')
          fo.writelines( lines )
    

    在最坏的情况下,我可以尝试使用python。

    但我希望不移动到python就可以解决这个问题。

    事先谢谢。

    1 回复  |  直到 6 年前
        1
  •  1
  •   rafaelcastrocouto    6 年前

    https://nodejs.org/api/fs.html

    onFileContent

    var fs = require('fs');
    
    function readFiles(dirname, onFileContent, onError) {
      fs.readdir(dirname, function(err, filenames) {
        if (err) {
          onError(err);
          return;
        }
        filenames.forEach(function(filename) {
          fs.readFile(dirname + filename, 'utf-8', function(err, content) {
            if (err) {
              onError(err);
              return;
            }
            onFileContent(filename, content);
          });
        });
      });
    }
    

    fs.writeFile('filename.txt', newValue, 'utf-8', function (err) {
      if (err) throw err;
    });