检查文本文件是否包含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');