我正在编写一个简单的脚本,其中包含循环显示一系列页面的下一个/上一个按钮,我试图获得一个" img"和" a"标记不显示在某个页面上。由于某种原因,以下代码行导致页面无限重新加载。
错误代码:
function buttonCheck() {
if ( window.location = "homefeed.php" ) document.getElementById('prev').style.display = "none";
}
window.onload = buttonCheck;
见下我的完整代码:
<!-- NEXT PAGE SCRIPT -->
<script>
var pageList = ["homefeed.php", "allfeed.php", "usfeed.php"];
var url = window.location.pathname; // e.g. http://me.com/index.html
var page = url.substring(url.lastIndexOf('/')+1); // e.g. index.html
var currentPosition = pageList.indexOf(page); // e.g. 0, 1 or 2
// NEXT BUTTON
function next(){
if(currentPosition<pageList.length-1) {window.location = pageList[++currentPosition];
}
else {window.location = pageList[0];
}
}
//PREVIOUS BUTTON
function previous() {
window.location = pageList[currentPosition - 1];}
//HOMEFEED DISPLAY NO BUTTON
function buttonCheck() {
if ( window.location = "homefeed.php" ) document.getElementById('prev').style.display = "none";
}
window.onload = buttonCheck;
</script>
<!-- NEXT PAGE SCRIPT -->
非常感谢任何帮助。仅供参考:我在没有Window.Onload功能的情况下只尝试了(If)行,但仍然有相同的结果。当我删除以下行时,问题就消失了。 问题似乎特别在于这一行:
if ( window.location = "homefeed.php" ) document.getElementById('prev').style.display = "none";
更新 我修复了无限重装问题,但显示风格现在无法正常工作。这是我更新的代码:
//HOMEFEED DISPLAY NO BUTTON
if ( window.location == "homefeed.php" ) document.getElementById('prev').style.display = "none";
更新: 我已经修改了显示样式错误,将其缩小到Window.Location。更新了以下代码:
var lastPart = window.location.href.split("/").pop();
//HOMEFEED DISPLAY NO BUTTON
if ( lastPart == "homefeed.php" ) { document.getElementById('prev').style.display = "none"
答案 0 :(得分:0)
你的问题:
if ( window.location = "homefeed.php" ) {
document.getElementById('prev').style.display = "none";
}
您 asigning 而不是比较。你应该这样做:
window.location == "homefeed.php"
但是,我使用location.pathname
,因为location
实际上不是字符串并且包含绝对网址:
window.location.pathname === "/homefield.php"
答案 1 :(得分:0)
if ( window.location.href == "homefeed.php" ) document.getElementById('prev').style.display = "none";
你错过了&#39; ==&#39;和&#39; .href&#39;
因此,在提出问题之前,请务必检查语法,大多数情况下都会导致错误。我曾经在我的代码中做了一个语法错误并提出了一个问题。
另外,window.location的href属性返回路径,因此如果你想比较路径,你也应该添加window.location.href。
答案 2 :(得分:0)
非常简单的错误:)
您正在尝试检查该网页是否为homefeed.php ...请仔细注意代码...
注意那里的等号......有什么打击?如果没有,请继续阅读。
您将window.location等同于homefeed.php,这就是将window.location设置为homefeed.php
您需要做的就是这个
if ( window.location == "homefeed.php" ) document.getElementById('prev').style.display = "none";
干杯!