Javascript访问Disqus评论文本框?

时间:2010-12-21 22:51:45

标签: javascript textbox google-chrome-extension disqus

我正在开发一个浏览器扩展程序,它允许我访问文本框中的评论/帖子。许多网站现在使用Disqus作为评论的方式,但我无法找到一种方法来访问Disqus评论框(Disqus API也没有说明多少)正在输入文本。

有人知道访问它的方法吗?

1 个答案:

答案 0 :(得分:2)

最好的解决方法是开始分析Disqus API如何评论他们的评论系统。此时您最好的朋友是Google Chrome附带的Inspector(开发人员工具)。

分析DOM(右键单击并找到该注释文本区域)时,您会注意到它是一个iframe。您应该想到,它是Discus域的一个跨域请求,以获取该评论框插件的信息。您可以通过查看标记看到它有一个指向domain.disqus.com的href,其中domain是您正在查看的网站。

例如,当您访问TechCrunch时,iframe将指向注入评论框的http://techcrunch.disqus.com

您可以使用Content-Scripts来阅读和操作这些注入的页面,因为Content-Scripts也可以通过全帧manifest名称注入IFrame。!

例如,要设置Content-Script,您需要清单文件中的content_scripts部分:

"content_scripts": [
  {
    "matches": ["http://*/*"],
    "js": ["cs.js"],
    "run_at": "document_end",
    "all_frames": true
  }

然后,在cs.js(内容脚本文件)中,您可以找到搜索给定iframe的注释框。

// We just need to check if the IFrame origin is from discus.com
if (location.hostname.indexOf('.disqus.com') != -1) {
  // Extract the textarea (there must be exactly one)
  var commentBox = document.querySelector('#comment');
  if (commentBox) {
    // Inject some text!
    commentBox.innerText = 'Google Chrome Injected!';
  }
}

最后,您会看到精彩的字词“Google Chrome Injected!”

希望能帮助您创建出色的Chrome扩展程序:)上面的代码可以运行,因为我在本地测试了它。