JavaScript:根据URL字符串显示/隐藏<DIV>

4
我需要在两个页面(URL)上显示一个DIV,但不在其他页面上显示。(如果有jQuery的话会更好)。我是一个完全的新手,所以非常感谢所有的帮助。谢谢!
情况1:我想显示DIV的情况:
- 在起始页上,当浏览器地址栏读取“www.mydomin.com”时。 - 起始页是PHP,因此我猜完整的URL是“www.mydomin.com/index.php”。
情况2:
- “www.mydomin.com/index.php?option=com_myblog&title.html&Itemid=1&lang=en” - 这一部分总是相同的:“www.mydomin.com/index.php?option=com_myblog&” - 这一部分总是唯一的:“title.html&Itemid=1&lang=en”
示例
    if (url == 'www.mydomin.com' or 'www.mydomin.com/index.php?option=com_myblog&') {

 do this

    xxxxxxxx

 else

        nothing
4个回答

7
如果我正确理解了问题,这应该可以正常工作。
var url = document.location.href;

if (url.indexOf('www.mydomin.com/index.php?option=com_myblog&') >= 0) {
  $('#div_id').hide();
} else {
  $('#div_id').show();
}

但实际上,如果您使用PHP,您应该想办法在第一时间不渲染div。


非常感谢您提供的代码!我尝试了一下,但无法使其正常工作(它在所有页面上呈现div)。我认为您对问题的理解是正确的,除了一件事 - 我还必须检查URL是否为起始页“www.mydomain.com/index.php”,且URL后没有额外字符。关于PHP建议,我认为您是完全正确的 - 我的问题是我无法控制PHP,因为它是从数据库生成的。因此,这是一种通过黑客手段将东西放在页面上的方法,否则我无法实现。 - Lennart
你确定用正确的选择器替换了我的 #div_id 吗? - Joel L

1

谢谢你的帮助!恐怕我太菜了,无法理解你提供的链接页面上的所有信息。抱歉! - Lennart

0

我认为这应该从 PHP 代码中处理,而不是从 JavaScript 中处理。并且 div 应该首先不被渲染。


谢谢。我同意,如果可能的话,我会这样做(请参见第一条评论)。 - Lennart

0

您可以使用window.location.search来定位URL的特定查询参数。使用以下代码,您可以找到精确匹配并显示/隐藏HTML元素:

var firstURLParam = window.location.search.substring(1).split('&')[0];
var datGuiEle = document.getElementById("elemID");
if(firstURLParam == "debug"){
    datGuiEle.style.display = "block";
}
else {
  datGuiEle.style.display = "none";
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接