Javascript可以在HTML中工作,但不能在PHP中工作
代码在HTML文件中完美运行,但在PHP文件中使用javascript时,似乎是唯一失败的地方。有人知道原因吗 这段代码应该在一段时间后不移动鼠标的情况下显示。如果用户移动鼠标,将显示.fadeOut();。但是,如果用户不移动鼠标,则会在几秒钟后将其重定向到另一个urlJavascript可以在HTML中工作,但不能在PHP中工作,javascript,php,html,Javascript,Php,Html,代码在HTML文件中完美运行,但在PHP文件中使用javascript时,似乎是唯一失败的地方。有人知道原因吗 这段代码应该在一段时间后不移动鼠标的情况下显示。如果用户移动鼠标,将显示.fadeOut();。但是,如果用户不移动鼠标,则会在几秒钟后将其重定向到另一个url <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"&g
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
$('#showdiv').fadeOut();
var timedelay = 1;
function delayCheck()
{
if(timedelay > 5)
{
$('#showdiv').fadeIn();
if(timedelay == 12)
{
window.location = "https://www.google.com";
}
timedelay = timedelay+1;
}
$(document).mousemove(function() {
$('#showdiv').fadeOut();
timedelay = 1;
clearInterval(_delay);
_delay = setInterval(delayCheck, 900);
});
// page loads starts delay timer
_delay = setInterval(delayCheck, 900)
</script>
<style type="text/css">
#showdiv{
width: 450px;
border-radius: 10px;
padding: 50px;
border: 2px double gray;
position: absolute;
top: 40%;
left: 40%;
}
</style>
</head>
<body>
<div id="showdiv">
<h2>
You will be redirected in a few second unless you move your mouse.
</h2>
</div>
</body>
</html>
$('#showdiv').fadeOut();
var时间延迟=1;
函数延迟检查()
{
如果(延时>5)
{
$('#showdiv').fadeIn();
如果(时间延迟==12)
{
window.location=”https://www.google.com";
}
延时=延时+1;
}
$(文档).mousemove(函数(){
$('#showdiv').fadeOut();
延时=1;
清除间隔(_延迟);
_延迟=设置间隔(延迟检查,900);
});
//页面加载启动延迟计时器
_延迟=设置间隔(延迟检查,900)
#showdiv{
宽度:450px;
边界半径:10px;
填充:50px;
边框:2倍双灰色;
位置:绝对位置;
最高:40%;
左:40%;
}
除非移动鼠标,否则您将在几秒钟内被重定向。
您必须了解,JavaScript
通常在用户浏览器中执行,而php
通常在服务器中执行
但是,如果您想在
php
文件中嵌入JavaScript
,您仍然可以在最后一个?>
php
标记之后进行嵌入。因为您要在页面顶部加载jQuery函数,所以需要用一个支持文档的处理程序将它们包围起来:
<script type="text/javascript">
$(document).ready(function() {
$('#showdiv').fadeOut();
var timedelay = 1;
function delayCheck()
{
if(timedelay > 5)
{
$('#showdiv').fadeIn();
if(timedelay == 12)
{
window.location = "https://www.google.com";
}
timedelay = timedelay+1;
}
} // closing the function
$(document).mousemove(function() {
$('#showdiv').fadeOut();
timedelay = 1;
clearInterval(_delay);
_delay = setInterval(delayCheck, 900);
});
// page loads starts delay timer
_delay = setInterval(delayCheck, 900)
});
</script>
$(文档).ready(函数(){
$('#showdiv').fadeOut();
var时间延迟=1;
函数延迟检查()
{
如果(延时>5)
{
$('#showdiv').fadeIn();
如果(时间延迟==12)
{
window.location=”https://www.google.com";
}
延时=延时+1;
}
}//关闭函数
$(文档).mousemove(函数(){
$('#showdiv').fadeOut();
延时=1;
清除间隔(_延迟);
_延迟=设置间隔(延迟检查,900);
});
//页面加载启动延迟计时器
_延迟=设置间隔(延迟检查,900)
});
此外,您的函数缺少一个结束括号。F12,console。有什么错误?您应该做一些适当的代码缩进,使代码更可读,更容易理解。您所说的“在PHP文件中使用”是什么意思?这里没有php代码。如何将php添加到此文件,或者什么类型的php代码使用此代码生成输出。您没有关闭函数。(您缺少最后一个
}
)。这是一个完美的例子,说明了正确的代码缩进会有多大帮助。我刚刚注意到缺少大括号,谢谢。当保存为.html文件时,它仍然有效。但是,它需要另存为.php文件。F12没有显示错误,它似乎忽略了我所有的javascript代码。OP没有要求在PHP中运行JS代码。请再看一遍这个问题。这在第一个“$('#showdiv').fadeOut();”之前一直有效。我刚刚注意到缺少的大括号,这很奇怪,因为它仍然以.html格式工作。它似乎仍然没有捕捉到鼠标移动。控制台中有任何内容吗?F12控制台中没有显示任何内容。它似乎完全忽略了javascript代码。编辑:我注意到上一个“\u delay=setInterval(delayCheck,900)”缺少一个“;”但这并没有解决问题。将代码减少到console.log()
。或者只是减少到原来的淡入度。用几行简单的代码确保一切正常。