2017-07-18 136 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'); 
} 
});