Tampermonkey脚本无法提取目标页面指定表格内容求助
解决Tampermonkey脚本提取目标页面指定表格区域的问题
你的问题出在错误操作了当前页面的DOM,而不是处理拉取到的目标页面HTML内容。现在的代码试图删除当前页面除目标表格外的元素,但拉取到的res.responseText才是「Stations」页面的完整HTML,得先把这个文本转换成可操作的DOM结构,再筛选出你要的#the_table_filter区域。
修正后的代码
// GET 请求,返回文本响应到回调 const httpGetReq = async (targetURL, callback) => { GM.xmlHttpRequest({ method: "GET", url: targetURL, responseType: "text", onload: response => { callback(response); }, onerror: response => { console.log('GET 请求失败!'); console.log(response); } }); };
$("#Find").click(function() { httpGetReq(url, res => { if (res && res.responseText) { // 把拉取到的目标页面HTML转为jQuery可操作的DOM对象 const targetPageDOM = $(res.responseText); // 精准提取目标表格区域 const targetTable = targetPageDOM.find('#the_table_filter'); // 按需处理提取到的表格:比如替换当前页面内容,或者提取数据 // 示例:清空当前页面body,插入目标表格 $('body').empty().append(targetTable); // 如果你要提取表格里的IP(假设IP在某个特定单元格) // const ip = targetTable.find('.ip-column').text(); // myList.value = ip; console.log('提取到的表格:', targetTable); } }); });
关键说明
- 用
$(res.responseText)将目标页面的HTML字符串包装成jQuery对象,这样就能用find()方法直接定位到#the_table_filter,无需打开目标页面 - 避免直接修改当前页面DOM,先处理拉取到的内容再按需插入,逻辑更清晰
- Tampermonkey默认注入了jQuery,所以这些方法可以直接使用
内容的提问来源于stack exchange,提问作者SysKey
相关产品推荐
相关产品推荐

