Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.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内容?_Javascript - Fatal编程技术网

检查文本文件是否包含javascript内容?

检查文本文件是否包含javascript内容?,javascript,Javascript,如何检查服务器上的文件是否包含特定文本?到目前为止,这就是我所做的: <script type="text/javascript" src="jquery-2.1.3.min.js"></script> <script type="text/javascript"> $.get('myfile.txt', function(data) { if (data == "Hello World") { alert("Hello World is fou

如何检查服务器上的文件是否包含特定文本?到目前为止,这就是我所做的:

<script type="text/javascript" src="jquery-2.1.3.min.js"></script>
<script type="text/javascript">
$.get('myfile.txt', function(data) {
   if (data == "Hello World") {
    alert("Hello World is found");
   }
   else {
    alert("It's NOT found");
   }
}, 'text');
</script>
该脚本不断返回
未找到它
,即使该文件包含
Hello World
如何修复该问题

更新: 这个答案有效,但现在我想用
setInterval
每秒检查一次,但在
myfile.txt
中去掉
Hello World
后,它就不起作用了,它仍然显示
Hello World已经找到了
,即使它已经不存在了。这就是我所做的:

<script type="text/javascript" src="jquery-2.1.3.min.js"></script>
<script type="text/javascript">
setInterval(function(){
$.get('myfile.txt', function(data) {
   if (data.indexOf("Hello World")>-1){
    document.write("Hello World is found");
   }
   else {
    document.write("It's NOT found");
   }
}, 'text');}, 1000);
</script>
我的控制台上写着:

Uncaught SyntaxError: Unexpected token .
我该如何解决这个问题?抱歉,我还在学习Javascript

更新3:

<script type="text/javascript" src="jquery-2.1.3.min.js"></script>
<script type="text/javascript">
setInterval(function(){
$.get('myfile.txt',{cache:false} function(data) {
   if (data.indexOf("Hello World")>-1){
    document.write("Hello World is found");
   }
   else {
    document.write("It's NOT found");
   }
}, 'text');}, 1000);
</script>

setInterval(函数(){
$.get('myfile.txt',{cache:false}函数(数据){
if(data.indexOf(“Hello World”)>-1){
编写(“发现了Hello World”);
}
否则{
文件。写入(“未找到”);
}
},“文本”);},1000);

我在控制台中得到了以下信息:
uncaughtsyntaxerror:missing)在参数列表之后
我的浏览器没有显示任何内容。

使用indexOf而不是==。您正在测试整个文本是否等于hello world

if (textdata.indexOf(stringToFind)>-1){ do stuff } 
编辑,问题已变形,代码示例:

function getTextfile()
{
  $.get('myfile.txt', {cache:false}, function(data) 
  {
    if (data.indexOf("Hello World")>-1) {
      document.write("Hello World is found");
    }
    else {
      document.write("It's NOT found");
    } 
    setTimeout(getTextfile, 1000);
 });
} 

getTextfile();

您正在检查整个文本是否等于字符串“Hello world”

使用String.indexOf,如下所示:

$.get('myfile.txt', function(data) {
   if (data.indexOf("Hello world") !== -1) {
   alert("Hello World is found");
   }
   else {
    alert("It's NOT found");
   }
}, 'text');

顺便说一下,javascript的黄金法则是:console.log一切。然后,您将了解jQuery的结构和生成响应对象的方式,例如,在尝试调试时不要使用警报。

“该脚本不断返回未找到的内容”-您尝试了多少次?如果在您的尝试中
数据
的值是多少?当您将其与字符串进行比较时,您希望发生什么?对于更新:文件可能正在缓存。改为使用并将
cache:false
传递到选项。谢谢它可以工作,但我遇到了另一个问题,请阅读我上面的更新帖子。你每秒钟都在阅读同一个文件,你肯定不需要这样做吗?你想做什么?我的路由器上有一个本地网页,显示我的openvpn连接日志,我想在每次连接/断开openvpn时播放声音通知。查看是否连接/断开连接的方法是读取openvpn日志文件,并查看是否存在与日志文件匹配的特定文本。我明白了,您是否尝试过cache:false?听起来好像每个请求都是一个缓存响应,因此每次都会看到hello world。。。如果cache:false不起作用,请尝试将随机查询字符串附加到正在获取的URL,以便每个请求都是新的。您可以重写代码吗?我试过了
cache:false
但仍然不起作用你能看看我更新的帖子吗,我想每秒钟刷新一次,但我的代码仍然不起作用我也认为它是缓存,你有没有尝试过这样的方法:$.get('myfile.txt'+'?“+$.now()?
function getTextfile()
{
  $.get('myfile.txt', {cache:false}, function(data) 
  {
    if (data.indexOf("Hello World")>-1) {
      document.write("Hello World is found");
    }
    else {
      document.write("It's NOT found");
    } 
    setTimeout(getTextfile, 1000);
 });
} 

getTextfile();
$.get('myfile.txt', function(data) {
   if (data.indexOf("Hello world") !== -1) {
   alert("Hello World is found");
   }
   else {
    alert("It's NOT found");
   }
}, 'text');