javascript - 无法在 Chrome 扩展程序中使用 Javascript 确定 Google 网上论坛搜索的结果

标签 javascript html google-chrome-extension obfuscation google-groups

我正在编写一个 Chrome 扩展程序,用于搜索主题行包含给定字符串的 Google 网上论坛中的帖子。从浏览器中,使用搜索查询“主题:”,我得到搜索结果:0 个结果或 > 0,并且根据结果是否出现而采取不同的操作。问题是,如果我只是使用

获取结果页面的页面数据
try
  {
  var request = new XMLHttpRequest();
  request.open("GET", url, false);
  request.send(null);
  }
catch (e)
  {
  console.log(e);   
  return;
  }
if (request.status == 200)
  {
  var tmp = request.responseText;
  }

我只是得到了混淆的数据并且无法读取它。如果我可以取回 Document 对象,那么我可以搜索某个类名,例如 doc.getElementsByClassName,当且仅当搜索结果为非零时,该类名才存在。

最佳答案

以下是如何将responseText转换为dom....

var page = document.implementation.createHTMLDocument("");
page.documentElement.innerHTML = request.responseText;
// Now you can find things
var thing = page.documentElement.querySelector('#find');

...但这对于某些页面来说并不总是足够的,因为它们是 ajax 驱动的,而新的 Google 网上论坛是肯定的。
所以这个页面只是页面加载时 js 将获得的所有其他内容的框架。
有时,您可以弄清楚如何复制页面发出的 ajax 请求,并通过查看 WebInspector 中的网络面板来复制它,并观察按下搜索按钮时会发生什么。
但 Google Groups 2 正在做一些奇怪的事情,我对此一无所知;)
您还可以执行其他操作,例如覆盖 XMLHttpRequest 并监视调用它的内容以及当就绪状态更改为 4 时它执行的操作或监视加载。并使用该信息尝试找出处理响应文本的函数,有时可以通过这种方式找到您需要的内容。但我目前找不到我的代码,并且不太愿意这样做,因为我知道它不会很漂亮;)
祝你好运。

关于javascript - 无法在 Chrome 扩展程序中使用 Javascript 确定 Google 网上论坛搜索的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13665288/

相关文章:

html - Vue.js--CSS 不适用于 v-html 元素

javascript - 使用 Chrome 扩展修改 HTTP 请求的响应体

javascript - HTML : Body bigger height than its content

javascript - 避免 JavaScript 属性名称占用每个对象的内存

javascript - 如何重置 Redux 存储的状态?

jquery - 从一个 css 中的 for 循环生成的页面的不同背景

javascript - 如何在没有内容安全策略错误的情况下在内容脚本中使用 Google +1?

javascript - 有没有办法告诉 knockout 等到定义 View 模型后再重新计算计算值?

javascript - 如何用另一个变量的值命名变量? JS

javascript - css动画快进快退