我有一个带有多个链接的html向Handler.php
文件发送Get请求,例如
<a href="Handler?Node=FirstGroup"><div class="MyClass">First Group</div></a>
<a href="Handler?Node=SecondGroup"><div class="MyClass">Second Group</div></a>
然后Handler.php
使用include
发送请求:
if(isset($_GET['Node'])) {
$Node=$_GET['Node'];
if ($Node=="FirstGroup"){
include 'Header.php';
include '1MainTitle.php';
include '2Selector.php';
include '3FirstGroup.php';
include 'xfoot.php';
}
elseif ($Node=="SecondGroup"){
include 'Header.php';
include '1MainTitle.php';
include '2Selector.php';
include '3SecondGroup.php';
include 'xfoot.php';
}
}
我的问题在于Header.php
。虽然我在浏览器中看到了javascript(使用F12),但是检查员显示警告TypeError: slides[(slideIndex - 1)] is undefined
,并且第一张幻灯片没有显示(脚本用于显示多张照片,一个接一个)。
我的Header.php
文件是这样的:
<!DOCTYPE html>
<html>
<head>
<title>The Title</title>
<link href="../Files/EB.css" rel="stylesheet" type="text/css" />
<link rel="icon" href="../Files/Images/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
var slideIndex = 1;
showSlides(slideIndex);
function plusSlides(n) {
showSlides(slideIndex += n);
}
function currentSlide(n) {
showSlides(slideIndex = n);
}
function showSlides(n) {
var i;
var slides = document.getElementsByClassName("mySlides");
var dots = document.getElementsByClassName("dot");
if (n > slides.length) {slideIndex = 1}
if (n < 1) {slideIndex = slides.length}
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" active", "");
}
slides[slideIndex-1].style.display = "block";
dots[slideIndex-1].className += " active";
}
</script>
</head>
<body>
请注意,脚本中定义了slideIndex
。
我的问题是:浏览器从php include中加载后“读取”javascript?
答案 0 :(得分:0)
在showSlides
函数slideIndex
中,并未在所有情况下定义。
它定义在n > slides.length
。
它也定义在n < 1
。
否则,它是未定义的。
在上面的代码中,您将n
传递给1
函数,因此,如果有多个幻灯片,slideIndex
仍未定义。