取消隐藏网站中的隐藏对象

Unhide hidden objects from a website

本文关键字:隐藏 对象 网站 取消      更新时间:2023-09-26

我想制作一个javascript代码,可以取消隐藏(显示)网站的一些未隐藏对象。

让我更深入地解释你。有一个盒子,里面有一些东西。假设加载到此框中的所有项目都是2000,但网站隐藏了800。我能做点什么来展示它们吗?

网站使用的代码(正如我在chrome的"检查元素"中看到的)是以下

 <div class="_3hqu" data-reactid=".ih.0.0.1.1.0.1.0.0.0.0.0.1:$100000533954532">
 <table class="_2x_v uiGrid _51mz" cols="3" cellspacing="0" cellpadding="0" data-reactid=".ih.0.0.1.1.0.1.0.0.0.0.0.1:$100000533954532.0">
 <tbody data-reactid=".ih.0.0.1.1.0.1.0.0.0.0.0.1:$100000533954532.0.0">
 <tr class="_51mx" data-reactid=".ih.0.0.1.1.0.1.0.0.0.0.0.1:$100000533954532.0.0.$2">
 <td class="_51m- vMid" data-reactid=".ih.0.0.1.1.0.1.0.0.0.0.0.1:$100000533954532.0.0.$2.$image">
 <div class="_4b2j" data-reactid=".ih.0.0.1.1.0.1.0.0.0.0.0.1:$100000533954532.0.0.$2.$image.0">
 <img class="_2x_w img" src=" IMAGE LINK" data-reactid=".ih.0.0.1.1.0.1.0.0.0.0.0.1:$100000533954532.0.0.$2.$image.0.0">
 </div>
 </td>
<td class="_2x_x _51m- vMid" data-reactid=".ih.0.0.1.1.0.1.0.0.0.0.0.1:$100000533954532.0.0.$2.$text">
<div class="_2x_y" data-reactid=".ih.0.0.1.1.0.1.0.0.0.0.0.1:$100000533954532.0.0.$2.$text.0">NAME</div>
<div class="_2x_z" data-reactid=".ih.0.0.1.1.0.1.0.0.0.0.0.1:$100000533954532.0.0.$2.$text.1"></div>
<div class="_2x_z" data-reactid=".ih.0.0.1.1.0.1.0.0.0.0.0.1:$100000533954532.0.0.$2.$text.2"></div>
</td>
<td class="_51mw _51m- vMid" data-reactid=".ih.0.0.1.1.0.1.0.0.0.0.0.1:$100000533954532.0.0.$2.$widget">
<a aria-checked="true" aria-labelledby="100000533954532-name" aria-describedby="100000533954532-subtitle" class="_3hqy _3hqz" href="#" role="checkbox" tabindex="0" data-reactid=".ih.0.0.1.1.0.1.0.0.0.0.0.1:$100000533954532.0.0.$2.$widget.0">
</a>
</td>
</tr>
</tbody>
</table>
</div>

这只是一个元素的代码。$100000533954532是这个元素(没有$)的值

并且在1200个具有相同代码但不同值的元素之后这个代码"隐藏"了其他800个元素。

<input type="hidden" name="at_limit" value="false" data-reactid=".ih.1">
<input type="hidden" name="session_id" value="1326941442" data-reactid=".ih.2">
<input type="hidden" name="profileChooserItems" value="{ "000001":1, "000002":1, etc...
 data-reactid=".ih.3">

用javascript代码可以揭示这个表的隐藏值(元素)吗???

您需要的是从DOM元素的集合中移除属性试试这个:

document.querySelector('input[type="hidden"]').removeAttribute("type");

JsFiddle 示例

StackOverflow 上的类似问题

以下是获取input元素并使用其中包含的属性和值动态创建一组更复杂的HTML节点的简单示例:

JSFiddle it here。

<input type="hidden" name="at_limit" value="false" data-reactid=".ih.1">
<script>
var at_limit = document.querySelector('input[name="at_limit"]');
var reactid = at_limit.getAttribute('data-reactid');
var toggle = (at_limit.value === "true");
var div  = document.createElement("DIV");
var tbl  = document.createElement("TABLE");
var tbdy = document.createElement("TBODY");
var tr   = document.createElement("TR");
var td   = document.createElement("TD");
var anc  = document.createElement("A");
anc.href = "page.html?reactid=" + reactid;
anc.className = ( toggle )? 'yes': 'no';
var txt  = document.createTextNode(reactid);
anc.appendChild(txt);
td.appendChild(anc);
tr.appendChild(td);
tbdy.appendChild(tr);
tbl.appendChild(tbdy);
div.appendChild(tbl);
document.body.appendChild(div);
</script>
<style>
.no   { color: red; }
.yes  { color: green; }
table { border: solid blue 1px; }
</style>

这就是概念,现在是将输入元素映射到目标div/table结构的问题。