我正在开发一个浏览器扩展程序,它允许我访问文本框中的评论/帖子。许多网站现在使用Disqus作为评论的方式,但我无法找到一种方法来访问Disqus评论框(Disqus API也没有说明多少)正在输入文本。
有人知道访问它的方法吗?
答案 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扩展程序:)上面的代码可以运行,因为我在本地测试了它。