-1

在网页中使用客户端脚本(无服务器代码),如 javascript,如何导入、编辑和替换 txt 文件中的文本?我只是尝试使用两个变量(名称和 IP 地址)并将它们替换为文本文件。现有的文本文件很长,我想自动化这个过程。如果脚本在每次提交时也自动创建一个新的文本文件,那就太好了。谢谢!

这是我的代码:

<html>
<head>
<title>TExt File Changer v1</title>
<script type="text/javascript">

function findaNamendReplaceAll() {
  var findaName = "Site_Name";
  var findaCIP = "192.168.0.5";
  var replaceaName = document.myInput.replaceWithName.value;
  var replaceaCIP = document.myInput.replaceWithCIP.value;
  var fulltexta = document.myInput.fulltext.value;
/* 
  var nr = new RegExp(findaName,"ig");
  var tmp = fulltexta.replace(/Site_Name/gi, replaceaName).replace(/192.168.0.5        /gi,replaceaCIP); 
  document.myInput.fulltext.value = tmp;
*/  

  document.myInput.fulltext.value = fulltexta.replace(/Site_Name/gi, replaceaName).replace(/192.168.0.5/gi,replaceaCIP);
}


var str     += ‘SECTION ethernet’/n;
   str      += ‘ETHERNET=UP’/n;
   str      += ‘BOOTP=server’/n;    
   str      += ‘HOSTNAME=Site_Name’/n;
   str      += ‘IPADDR=192.168.0.4’/n;
   str      += ‘NETMASK=255.255.255.0’/n;
   str      += ‘DNS=‘/n;
   str      += ‘DHCP_RANGE_L=192.168.0.20’/n;
   str      += ‘DHCP_RANGE_U=192.168.0.100’/n;
   str      += ‘SEARCH=‘/n;
   str      += ‘ZEROCONF=YES’/n;
   str      += ‘ETH0_ADD_DEFAULT=on’/n;
   str      += ‘ENDSECTION ethernet’/n;
   str      += ‘‘;
</script>
</head>
<body>
<form name="myInput" onsubmit="return false">
<h1>Configuration Tool</h1>

New Site Name: <input type="text" id="replaceWithName" name="replaceWithName" value="">
<br><br>
New Camera IP: <input type="text" id="replaceWithCIP" name="replaceWithCIP" value="">
<br><br>
<button onclick="findaNamendReplaceAll()">Go</button>
<br><br>

<textarea id="fulltext" name="fulltext" rows="20" cols="100">
SECTION ethernet
ETHERNET=UP
BOOTP=no
HOSTNAME=Site_Name
IPADDR=192.168.0.4
NETMASK=255.255.255.0
DNS=
DHCP_RANGE_L=
DHCP_RANGE_U=
SEARCH=
ZEROCONF=YES
ETH0_ADD_DEFAULT=on
ENDSECTION ethernet
</textarea>
<br>
<button onclick="document.getElementById('fulltext').value = ''">Clear</button>
<button onclick="document.getElementById('fulltext').value = str">Restore</button>

</form>
</body>
</html></pre>
4

1 回答 1

1

只要您遵守两个限制,您就可以轻松做到这一点。

1) Windows 上的 Internet Explorer 2) 使用 ActiveXObjects

我做了一个项目,需要组装 excel 电子表格中的各种数据。我的输入文件是一个手动编辑的 json 文件 - 指定文件名和路径等内容。加载 json 后,我使用 ActiveXObject 以与在 VBA 程序中相同的方式打开和控制 Excel。

结果,我没有任何代码可以从任意文件名加载任意数据。但是,此代码段应该足以让您入门。

注意:代码假定 IE 仍然为您提供使用<input type='file'/>Chrome、FF 和 Opera 选择的任何文件的完全限定路径,它们只给您文件名 - 它们不会告诉您它所在的文件夹。

function byId(e){return document.getElementById(e);}
function writeDataToFile()
{
    var mFSO = new ActiveXObject("Scripting.FileSystemObject");

    var mFile = mFSO.createtextfile(outputFilename);
    mFile.write( byId('outputTextArea').value );
    mFile.close();
    alert("text saved to '" + outputFilename + "'");
}
于 2013-05-16T19:47:00.620 回答