![](/img/trans.png)
[英]Does a statement with only a variable name do something in JavaScript?
[英]JavaScript beginner, if a variable does not match to do something
基本上,我要寫的是編寫潤滑脂猴子腳本,這樣,如果頁面上的鏈接不是鏈接,我就可以在忽略列表中直接打開該鏈接,如果該鏈接在列表中,則在5秒鍾后重新加載頁面這是我到目前為止嘗試過的
var url1 = $("span.capsulelink a:eq(0) ").attr("href");
var ignoreList = ["example1.com","example2.com"]
if (url1 !== ignoreList) {
window.open(url1);
} else {
setTimeout(function() {
location.reload();
},5000);
}
我知道這是我遇到麻煩的( url1 !== ignoreList
)部分,我似乎無法找到正確的表達方式。 就像我不知道怎么說url1
是否不在ignoreList
。
ignoreList.indexOf(url1) !== -1
這是另一種說法:“ url
包含在ignoreList
數組中?”
這是因為Array
的indexOf()
方法返回要查找的元素的索引,如果該元素不存在,則返回-1
。
要取消此操作(您要執行的操作),請輸入:
ignoreList.indexOf(url1) === -1
(即url1
不在 ignoreList
?)
這是一個很好的問題,因為答案確實不是直觀的。
當您開始學習javascript
,某些語法模式開始變得熟悉。
但是,JavaScript相當於PHP的
if (!in_array([ARRAY]));
根本不是很明顯-這是您只需要知道的一種語法。
這是您要查找的javascript
:
if (ignoreList.indexOf(url1) !== -1) {
[RELOAD PAGE CODE HERE]
}
else {
[OPEN THE LINK CODE HERE]
}
這是它起作用的原因:
ignoreList.indexOf([VALUE])
遍歷ignoreList
數組並搜索該數組的項。
如果這些項目之一是 [VALUE]
,則返回該項目的索引。
重要的是,如果沒有一個項目是[VALUE]
返回-1
。
因此,為了確定至少一項 是 [VALUE]
,您必須驗證返回的索引肯定不是 -1
。
因此,您需要檢查的條件是:
if (ignoreList.indexOf(url1) !== -1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.