Der beste Weg, um es herauszufinden, ist zu analysieren, wie Disqus API ihr Kommentar-System tut. Ihr bester Freund ist der Inspector (Developer Tools), der mit Google Chrome geliefert wird.
Wenn Sie das DOM analysieren (klicken Sie mit der rechten Maustaste auf den Textbereich des Kommentars), werden Sie feststellen, dass es sich um einen Iframe handelt. Es sollte Ihnen in den Sinn kommen, dass es eine ursprungsübergreifende Anfrage an die Diskus-Domain ist, die Informationen für dieses Kommentar-Box-Plugin zu erhalten. Sie können sehen, dass, wenn Sie auf das Tag schauen, es eine href hat, die auf domain.disqus.com zeigt, wo domain die Website ist, auf die Sie schauen.
Wenn Sie zum Beispiel TechCrunch besuchen, zeigt der Iframe auf http://techcrunch.disqus.com, der das Kommentarfeld eingibt.
Sie können Content-Scripts verwenden, um diese injizierten Seiten zu lesen und zu bearbeiten, da Inhaltsskripts auch in IFrames über alle Frames manifest Name einfügen können.!
Als Beispiel eines Content-Script einrichten, müssen Sie den content_scripts Teil in der Manifest-Datei:
"content_scripts": [
{
"matches": ["http://*/*"],
"js": ["cs.js"],
"run_at": "document_end",
"all_frames": true
}
Dann in Ihrem cs.js (Content-Skript-Datei) finden Sie das Kommentarfeld von der Suche nach dem gegebenen 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!';
}
}
Am Ende werden Sie die wundervollen Worte "Google Chrome Injected!"
Hoffe, dass Sie einen Push erstellen, der fantastische Chrome-Erweiterungen erstellt :) Der obige Code funktioniert, da ich es lokal getestet habe.
Vielen Dank, so viel! Ich habe die Option "all_frames" nicht erkannt. Das löst mein Problem. – PixelPerfect3