Javascript/jQuery/html:当涉及“硬”刷新时,如何从页面源代码自动检索数据
Javascript/jQuery/html: How to automatize data retrieval from page source, when 'hard' refresh is involved?
重要提示:我已经完全改写/编辑了我原来的问题,所以请不要认为第一个答案无关紧要。
情况如下:有出版物数据库的网页,用户在其中选择不同的过滤器以搜索符合特定条件的某些文章。在某些情况下,例如在选择"一组人员"或"特定人员"时,将从下拉列表中实现筛选。当用户选择一个组(从"组"筛选器中)时,相应的人员姓名列表将显示在"人员"选择下拉列表筛选器中。此外,当"组"下拉列表中的值发生更改时,将使用"人员"过滤器的新下拉列表重新加载页面。我的目标是检索并保存"组"过滤器中每个值的"人员"过滤器的内容。我想通过在控制台窗口中使用 Javascript 代码来做到这一点。但是,我不想手动更改"组"过滤器的值,然后检索"人员"内容,而是换句话说,在控制台窗口中构建一个自动化过程(这是我知道的唯一方法)来获取我需要的数据。
这是我的问题:考虑到我的方法并不完全疯狂,这就是我尝试在 Safari 控制台上做的事情(如果有其他方法,请告诉我):
// Since the jQuery is not loaded in the resources I call it by this:
var script = document.createElement('script');
script.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js";
document.getElementsByTagName('head')[0].appendChild(script);
// I locate the 'Group' Select List and I store the values of its options by this:
$(document).ready(function(){
//Cycle through all the groups
var abtOptValues = new Array();
$("[name='abt']>option.[value!='-1']").each(function(l){
abtOptValues[l] = $(this).attr("value");
});
// Now, with the values from the 'Group' Select List in an array I want to cycle through
// each one of them and get the respected values of the 'People' Select List. So I try this:
for (var abtOptValue in abtOptValues)
{
$("[name='abt']").val(abtOptValues[abtOptValue]); //set the option in
// the 'Group' List
var persOptValue = new Array();
$("[name='pers']>option.[value!='-1']").each(function(i){
persOptValue[i] = $(this).attr("value");
});
console.log(persOptValue);
}
});
但是,正如 Mike 在下面准确评论的那样,这不是一个正确的方法,当控制台中的 javascript 运行时,控制选择列表内容的 javascript 将不会运行。只有在控制台的脚本完成之后,控件的脚本才会选择为"组"列表选择的当前值,并将"人员"列表的相应选项内容打印为"组"列表中的选项数的多次。
如果希望上述内容有意义,我的问题是为了实现这种自动化,作为浏览器中页面的查看者,无需访问页面资源,应遵循什么策略?
如果我尝试以图表方式描述我需要采取的行动的顺序,那就是:
页面已加载 -> jQuery 库已加载 -> "组"选项 收集的列表 -> 设置"组"中的第一个选项 列表 -> 页面 重新加载 -> 加载 jQuery 库 -> 个选项的"人" 收集的列表(对应于第一个"组"选项)>设置 "组列表"中的第二个选项 -> jQuery 库已加载 ->
"人员"列表选项(对应于第二个"组"选项) 收集 -> 在"组"列表中设置第三个选项,依此类推...
提前谢谢你。
PS:请提到(虽然你已经推测过)我在html和jQuery这个领域几乎是新手。
编辑:在与一位朋友讨论这个话题后,他向我解释了一些事情,我将尝试在这里重新组合,据我所知,但如果您愿意,请说明您将这样做的方式。
因此,首先,一个重要的参数是我无法访问服务器和页面源代码,所以我要求的是"破解"已经到达我浏览器中的内容,以便检索我需要的数据。这是可能的,只要我不需要刷新页面。例如,当选择"选择列表"中的新值并且页面自动刷新以更新子项下拉列表的内容时,将进行刷新。其次,我需要自动化该过程并能够在控制台中键入代码,按一次回车键,然后让我上面描述的过程继续直到完成。
这位朋友建议这几乎是不可能的,除非外部应用程序在控制台中承担启动和停止javascript的管理角色,注意页面何时刷新并控制彼此之间的通信。他强调,通常的正常方式是访问服务器,在那里我可以要求在浏览器中仅返回我想要的数据。我期待你的回答。
如果希望警报仅显示一次,请将for
循环从
for (HLValue in HLValues)
{
alert(LLValues);
// **Here is my problem**
}
自
var vals = []; // Create a new empty array
for (HLValue in HLValues)
{
vals.push(HLValue); // Add the item value to your array
}
var joinedVals = vals.join("'n"); // Join the item values with a newline between them
alert(joinedVals); // Alert just once with the joined item values
要在每次页面刷新时包含 JQuery,请在<head>
中添加以下行:
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
这将直接从他们的站点加载 JQuery,而无需下载它并在您的计算机上引用它。
- Firebase:如何从存在特定密钥的数据中检索记录
- 禁用数据自动关闭下拉列表基金会只需在一个菜单中
- Javascript/jQuery/html:当涉及“硬”刷新时,如何从页面源代码自动检索数据
- 在 AngularJS 中使用从 websockets 动态获取的外部 JSON 数据自动更新 DOM
- 如何使用一个 HTML 页面中的数据来检索要在另一个 HTML 页面上使用 ajax 的数据
- 你知道谷歌文档Javascript是如何进行间隔数据自动刷新的吗?
- 从 Django View 以 JSON 形式返回的数据中检索元素
- 更新现有数据时检索引导模式表单中的复选框字段的值时出现问题
- 使用单击单选按钮时的数据自动填充输入字段
- 使用json数据自动完成
- 从类似对象路径的数据中检索属性#0.elements.#0.name”;
- Sequelize—如何从查询自动检索子记录到父表
- 如何从服务器JSON向jsTree添加元数据并检索元数据
- 使ajax不断地向PHP脚本发送数据并检索结果
- 从REST API自动检索结果
- Jade, Express.js, NodeJS -用新数据自动渲染UI
- 如何停止json数据自动排序在谷歌浏览器
- 使用来自不同页面的数据自动填充表单
- 如何从json数据中检索数据
- Ajax Php-Mysql在插入数据时检索确认