2017-07-18 70 views
4

我需要隐藏基于window.location.href对象的元素。我的方法是如下:隐藏基于URL的元素href

$(document).ready(function() { 
 
\t \t var windowURL = window.location.href; 
 

 
\t \t if (windowURL.indexOf('stackoverflow') > -1) { 
 
\t \t \t $('#hide-this').css('display', 'none'); 
 
\t \t } 
 
});
#hide-this { 
 
    width: 100px; 
 
    height: 100px; 
 
    background-color: red; 
 
} 
 

 
#show-this { 
 
    width: 100px; 
 
    height: 100px; 
 
    background-color: green; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script> 
 
<div id="hide-this"></div> 
 
<div id="show-this"></div>

预期的结果是隐藏红场。但它仍然显示。我有点失落,我做错了什么,因为这看起来很基本/简单...这可能是我错过的小事。任何帮助,将不胜感激。

下面是一个的jsfiddle也证明了同样的问题:https://jsfiddle.net/ce86zb3r/8/

UPDATE:貌似该代码是在这个特定语境由于iFrame的这里有问题,但它并没有我在现场工作工作,尽管网址是正确的console.log ed - 为什么会这样?

FINAL UPDATE:我正在编辑错误的文件。哈哈...

+0

https://开头的jsfiddle .net/ce86zb3r/13 /代码取自[这里](https://stackoverflow.com/questions/10243576/jquery-how-to-check-if-url-contains-word) – hansTheFranz

+0

可能重复的[jquery如何检查url是否包含单词?](https://stackoverflow.com/questions/102435 76/jquery-how-to-check-if-url-contains-word) – hansTheFranz

+0

你得到-1,所以它不会进入if条件 –

回答

5

如果你console.log变量windowUrl,你会发现它不是StackOverflow页面,而是https://stacksnippets.net/js(它提供了嵌入SO的片段)。因此,改变被搜索的字符串为 “stacksnippets”,它的工作原理:

$(document).ready(function() { 
 
    var windowURL = window.location.href; 
 
    console.log(windowURL); 
 

 
    if (windowURL.indexOf('stacksnippets') > -1) { 
 
    $('#hide-this').css('display', 'none'); 
 
    } 
 
});
#hide-this { 
 
    width: 100px; 
 
    height: 100px; 
 
    background-color: red; 
 
} 
 

 
#show-this { 
 
    width: 100px; 
 
    height: 100px; 
 
    background-color: green; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script> 
 
<div id="hide-this"></div> 
 
<div id="show-this"></div>

你的代码是正确的。您只需确保您使用嵌入式页面的URL中的文本,而不是嵌入页面的文本。

+1

很好的解释.. – Nihal

+0

感谢你在这方面有道理。在我真实世界的例子中(遗憾的是我无法分享,因为它现在还没有公开)我基本上需要在网址中的特定字符集存在时隐藏一个元素。当我'console.log'这个'windowURL'变量并且返回正确的URL时,这个代码不能工作的原因是什么? – kawnah

+0

它取决于您在'indexOf'中搜索的字符串。你确定它是一个子字符串考虑的情况下(大写,小写)?如果是的话,它会起作用。如果您可以分享用于搜索的网址和字符串,那么我们可以帮助您更轻松地帮助您 –

0

为了您的小提琴,显示结果的IFRAME有一个网址contaiing jshell

我已经更新您的小提琴,它显示在这里工作:

https://jsfiddle.net/ce86zb3r/12/

$(document).ready(function() { 
var windowURL = window.location.href; 

if (windowURL.indexOf('jshell') > -1) { 
    $('#hide-this').css('display', 'none'); 
} 
});