仅在导航部分搜索文本?
Search for text only in the nav part?
我正在尝试编写一个用户脚本,让我在每天使用的网站上自动登录。
我想让脚本先检查我是否登录,只有当我退出时才执行其余的。
var content = document.body.textContent;
var hasText = content.indexOf("Login")!==-1;
if(hasText){
document.getElementById("useremail").value = "mymail@gmail.com";
document.getElementById("userpassword").value = "mypassword123";
}
我的代码几乎可以正常工作,唯一的问题是在整个源代码中寻找 "login" 文本。通常在那里,即使我登录了。我希望搜索部分只在导航(菜单)中查看。我该怎么做?
如果我已注销:菜单 (nav) 列表 (li) 之一是 "Login"。
如果我已登录,该菜单会显示我的用户名(因此网站的导航部分没有登录)。
网站的来源如下:
<body>
<section id="main-header" class="headersclass">
<div class="container">
<header>
<div class="menusdiv">
<nav class="mainmenu">
<ul>
<li class="menulisting">
<li class="menulisting">
<li class="menulisting">
</ul>
</nav>
</div>
</header>
</div>
</section>
...random text of the site...
...the word "Login" can appear anywhere...
</body>
我试过将脚本的第一行更改为下一行,但总是出错:
var content = document.body.nav.textContent;
var content = document.body > nav.textContent;
var content = document.body.section.div.header.div.nav.textContent;
var content = document.querySelectorAll('nav').textContent;
var content = document.getElementsByTagName("nav").textContent;
var lookhere = document.getElementsByTagName("nav");
var content = lookhere.textContent;
你需要这样使用:
var content = document.getElementsByClassName("mainmenu")[0].textContent;
或者,就像您尝试访问的方式一样:
var content = document.getElementsByTagName("nav")[0].textContent;
这些函数return一个HTMLNodeList
,它就像一个数组,需要获取第一个元素
其中任何一个都应该有效
var content = document.getElementsByClassName('mainmenu')[0].textContent;
或
var content = document.getElementsByTagName('nav')[0].textContent;
我正在尝试编写一个用户脚本,让我在每天使用的网站上自动登录。
我想让脚本先检查我是否登录,只有当我退出时才执行其余的。
var content = document.body.textContent;
var hasText = content.indexOf("Login")!==-1;
if(hasText){
document.getElementById("useremail").value = "mymail@gmail.com";
document.getElementById("userpassword").value = "mypassword123";
}
我的代码几乎可以正常工作,唯一的问题是在整个源代码中寻找 "login" 文本。通常在那里,即使我登录了。我希望搜索部分只在导航(菜单)中查看。我该怎么做?
如果我已注销:菜单 (nav) 列表 (li) 之一是 "Login"。 如果我已登录,该菜单会显示我的用户名(因此网站的导航部分没有登录)。
网站的来源如下:
<body>
<section id="main-header" class="headersclass">
<div class="container">
<header>
<div class="menusdiv">
<nav class="mainmenu">
<ul>
<li class="menulisting">
<li class="menulisting">
<li class="menulisting">
</ul>
</nav>
</div>
</header>
</div>
</section>
...random text of the site...
...the word "Login" can appear anywhere...
</body>
我试过将脚本的第一行更改为下一行,但总是出错:
var content = document.body.nav.textContent;
var content = document.body > nav.textContent;
var content = document.body.section.div.header.div.nav.textContent;
var content = document.querySelectorAll('nav').textContent;
var content = document.getElementsByTagName("nav").textContent;
var lookhere = document.getElementsByTagName("nav");
var content = lookhere.textContent;
你需要这样使用:
var content = document.getElementsByClassName("mainmenu")[0].textContent;
或者,就像您尝试访问的方式一样:
var content = document.getElementsByTagName("nav")[0].textContent;
这些函数return一个HTMLNodeList
,它就像一个数组,需要获取第一个元素
其中任何一个都应该有效
var content = document.getElementsByClassName('mainmenu')[0].textContent;
或
var content = document.getElementsByTagName('nav')[0].textContent;