Ich versuche, eine Chrome-Erweiterung zu machen. Es gibt eine Schaltfläche in meiner popup.html, die auf ein Element in der aktiven Registerkarte klickt. Theoretisch denke ich, ich verstehe, wie das zu tun, aber jetzt hier fest ich:Chrome Extension: Wie bekomme ich Element von aktiv Tabs
HTML auf der Webseite:
<td class="confirmButtons">
<form action="modcp.php" method="post">
<input class="formAction" type="hidden" name="" value="">
<ul>
<li class="button"><a href="javascript:void(0);" class="formAction" rel="confirm" tabindex="2"><strong>Ja</strong></a></li>
</ul>
<ul class="buttonGroup">
<li class="first"></li>
<li class="button"><a href="javascript:void(0);" class="formAction" rel="cancel" tabindex="2"><strong>Nein</strong></a></li><a href="javascript:void(0);" class="formAction" rel="cancel" tabindex="2">
<li class="last"></li>
</a></ul></form></td>
Der Kodex ich in meinem content_script.js verwenden:
function clickJa() {
console.log("clickJA");
var confirmButton = document.getElementsByClassName("confirmButtons");
console.log(confirmButton);
}
Nun, mein Problem: Wenn ich den Code in der Konsole fügen sie ihn retur ns ein Array mit 1 Element - das ist in Ordnung. Wenn ich drücke meine Taste in der Erweiterung ut gibt ein Array mit 0 Elementen - das ist nicht gut und ich habe keine Ahnung, was ist los ... haben Sie einige Ideen?
Grüße und vielen Dank für jede Idee & beantworten Lime
Es bedeutet, dass die Website nicht auf eine Schaltfläche hat noch im Zeitpunkt des Inhalts Skript ausführen. Abhängig von dem Ziel und wie Sie injizieren gibt es mehrere Lösungen wie Timer, MutationObserver, Ereignisse. – wOxxOm
Bitte bearbeiten Sie die Frage zum Thema: Fügen Sie ein [mcve] ein, das das Problem dupliziert. Bei Chrome-Erweiterungen oder Firefox-WebExtensions bedeutet dies fast immer, dass Sie * manifest.json * und einige der Hintergrund-, Inhalts- und/oder Popup-Skripts/HTML einbeziehen. Fragen, die Debugging-Hilfe suchen ("Warum funktioniert dieser Code nicht so, wie ich will?") Muss Folgendes enthalten: (1) das gewünschte Verhalten, (2) ein spezifisches Problem oder einen Fehler und (3) den kürzesten Code, der für die Reproduktion erforderlich ist * in der Frage selbst *. Bitte beachten Sie auch: [Was kann ich hier fragen?] (Http://stackoverflow.com/help/on-topic) und [fragen]. – Makyen
Was wOxxOm sagte, ist das wahrscheinlichste Problem. Wir können jedoch nicht sicher sein, dass nicht genug Code vorhanden ist, um das Problem zu reproduzieren (und die URL der Website, damit wir wissen, wo wir testen müssen). – Makyen