Zugriff auf Seiten-Quellcode per Toolbarbutton möglich?

  • Firefox-Version
    115 ESR
    Betriebssystem
    Win10

    Hallo alle.

    Gibt es eine Funktion / Möglichkeit, mit der man aus einem Userscript auf den Seiten-Quellcode des aktiven Tabs (nur lesend) zugreifen kann?

    Eine Übernahme von reinem Text in eine Variable wäre dabei ideal.

    Soweit ich es aber 'verstanden' habe, geht das nicht so ohne Weiteres, weil Content und Umgebung getrennt sind.

    Aber vielleicht mit Hilfe der Zwischenablage?

    Hintergrund ist die Suche im Quellcode nach der URL eines in der Site eingebetteten iFrames.

    Ein Öffnen im externen Editor und dort mit Makro suchen geht schon mal.

    Mit einem Toolbarbutton wäre das aber einfacher - falls möglich.

    Mir fehlt dabei 'nur' die Funktionalität für den rein lesende Zugriff (den Rest bekomme ich dann hoffentlich hin).

    FF 115.x ESR auf Win10 Pro 64bit

    FF 115.x ESR auf Linux Mint

  • Gibt es eine Funktion / Möglichkeit, mit der man aus einem Userscript auf den Seiten-Quellcode des aktiven Tabs (nur lesend) zugreifen kann?

    Gibt es, hat Firefox selbst. Text markieren -> Kontextmenü "Auswahl Quelltext zeigen", ist auch nur-lesend.

    Hast du eine beispielseite?

    Wir sind keine Beschwerdestelle, hier gibt es nur Lösungen! Meine Glückszahl hier: 93.

  • Da war ich zu chirurgisch, das funktioniert natürlich auch ohne Markierung wie gezeigt.

    Eine komplette Webseite aber in eine (!) Variable zu speichern, bei 100.000 Zeichen dürfte das erheblich lange dauern und ganz viel Speicher. Entsprechend dürfte auch die Verarbeitungszeit aussehen.

    Funktioniert auch bei iFrames, da sieht nur der Kontexteintrag etwas anders aus.

    Bleibt die Frage nach der gewünschten Auswertung, was soll denn erreicht werden? Innerhalb Firefox, oder ausserhalb?

    Wenn sonstiger Content egal ist, könnte man auch eine externe Anwendung damit füttern statt Editor und das suchen lassen. Schneller und effektiver.

    Wir sind keine Beschwerdestelle, hier gibt es nur Lösungen! Meine Glückszahl hier: 93.

  • Danke schon mal für den netten Versuch - aber das, was ihr schreibt, ist mir doch bekannt...

    Das ganze soll in einem Userscript ohne irgend eine Interaktion mit der Seite selbst geschehen.

    Also meine Überlegung wäre:

    1. Userbutton anklicken

    2. aktuelle Seite (die des aktuellen Tabs) wird als html-Quellcode in Variable eingelesen -> das ist das eigentliche Problem

    3. der Inhalt der var im Script ausgewertet (in diesem Fall nach der url des iFrames gefiltert, ist aber zweitrangig)

    4. die url wird in einem neuen Tab geöffnet

    Also nix markieren, Kontextmenü oder Inspektor - und auch nicht so, wie ich es zurzeit mache (ich habe das im FF bereits so mit dem externem Editor eingestellt, das der NP++ sich automatisch öffnet):

    1. Quellcode im externen Editor NP++ öffnen und dort

    2. die url per Makro suchen lassen

    3. die gefundene url doppelt klicken

    4. die url wird in einem neuen Tab geöffnet

    Für mich ist das eine eher interessante Fragestellung: wie kommt man an den Quellcode neben den bekannten Methoden noch heran, und zwar von einem Userscript aus?

    Das dürfte eine ziemlich schwierige Angelegenheit sein.

    Die Größe der Site und die Menge an Daten ist da eher ein kleineres Problem.

    Eine andere Variante wäre die Frage, ob man die Attribute von im Quellcode eingebetteten Elementen auslesen kann.

    Ich habe aber keine Möglichkeit gefunden, den Code 'von außen' anzusprechen und auszulesen. Man kommt da so einfach nicht heran.

    FF 115.x ESR auf Win10 Pro 64bit

    FF 115.x ESR auf Linux Mint

  • Wenn du es eh von aussen machen willst, dann bleib auch "aussen", vergiss Firefox, das geht komplett in die Binsen.

    Nutze ich in einer meiner Anwendungen:

    Inetc plug-in - NSIS

    Oder

    How to Download file from the web via AutoIT?
    I wish to retrieve a file from a webserver (HTTP) periodically from an web-connected PC. I need more information on the use of InetGet. Any example scripts?
    www.autoitscript.com

    Oder

    Use PowerShell to download a file with HTTP, HTTPS, and FTP
    In PowerShell, you can download a file via HTTP, HTTPS, and FTP with the Invoke-WebRequest cmdlet
    4sysops.com

    Jede Webseite ist lediglich nur eine Datei. Das kann man durchsuchen und auswerten. Der Aufwand in PS dürfte größer sein als ein einer Anwendung basierend zB auf Autoit (kann IExplorer als auch EdgeWebview). NSIS hat ein Limit bei 1024 Zeichen, mit Mod 8192, das reicht leider nicht, falls eine Zeile diese Werte überschreitet.

    Ich hatte nicht umsonst gefragt, was du eigentlich bezwecken willst. Einfach nur den Quelltext einer Webseite oder iFrame laden kannst du mit so ziemlich vielen Programmen, selbst mit wget oder curl.

    Use the internet from the command line with curl
    Curl is commonly considered a non-interactive web browser. That means it's able to pull information from the internet and display it in your terminal or save…
    opensource.com
    How to download an entire website for offline usage (using wget)
    Here is a simple step to downloading an entire website and making it available offline using...
    dev.to

    Oder ganz rudimentär, zB Linux

    8 Command Line Tools for Browsing Websites and Downloading Files in Linux
    This article aims at making you aware of several other Linux command Line browsing and downloading applications, which will help you to browse and download…
    www.tecmint.com

    Alles willkürlich aus der Suchmaschine gewählt, du musst es nur verwursten.

    Wir sind keine Beschwerdestelle, hier gibt es nur Lösungen! Meine Glückszahl hier: 93.

  • Ich verstehe nicht, wieso du den kompletten Quelltext einer Variablen zuweisen und damit dann arbeiten möchtest, wenn es dir um einen konkreten iFrame geht. Willst du dann per regulärem Ausdruck nach dem Attribut suchen? Wieso nicht direkt auf den iFrame zugreifen? Sprich statt mittels document.getElementsByTagName('html')[0].innerHTML das komplette HTML zu lesen und damit etwas zu machen, direkt via document.getElementsByTagName('iframe')[0]?.getAttribute('src') die URL des iFrames auslesen.

    (Wie du das in einem Firefox-Script verwendest, ist nicht meine Baustelle.)

    Eine andere Variante wäre die Frage, ob man die Attribute von im Quellcode eingebetteten Elementen auslesen kann.

    Ich habe aber keine Möglichkeit gefunden, den Code 'von außen' anzusprechen und auszulesen. Man kommt da so einfach nicht heran.

    element.contentDocument beinhaltet das HTML des iFrames, wenn element dein iFrame ist. Das funktioniert aber nur, wenn der iFrame auf der gleichen Domain läuft wie die Seite selbst.

  • Hallo Sören, ich kenne mich ja nicht wirklich in dieser Sprache aus.

    Selbst intensive Suche im www hat mir nicht Deine Vorschläge gezeigt.

    Werde ich einfach mal testen. Hatte ja selbst überlegt und gefragt:

    ob man die Attribute von im Quellcode eingebetteten Elementen auslesen kann.

    Das wäre in der Tat viel einfacher.

    Danke schon mal für die Vorschläge.

    FF 115.x ESR auf Win10 Pro 64bit

    FF 115.x ESR auf Linux Mint

  • Hintergrund ist die Suche im Quellcode nach der URL eines in der Site eingebetteten iFrames.

    Ein Öffnen im externen Editor und dort mit Makro suchen geht schon mal.

    Muss es ein Userskript sein? Dann kann ich auch nicht helfen.

    Aber wenn es dir um das separate Öffnen des IFrames geht: Das geht doch völlig von allein mit Bordmitteln. Wenn man sich mit der Maus über einem IFrame befindet, dann gibt es einen Kontextmenüeintrag namens „Aktueller Frame“. Außerdem kann man den URI doch über die Webtools ermitteln (STRG+Umschalt+I oder in Windows F12) bzw. ebenfalls über das Kontextmenü mittels „Untersuchen" (man muss sich mit der Maus natürlich über dem IFrame befinden).

    Ich hab mal schnell nach Beispielen gesucht, als erstbestes Ergebnis Best Iframe Website Examples & Free Designs genommen und dort Vimeo Background Video with Play Sound Toggle ausgesucht. Die Adresse der eingebetteten Seite ist https://vimeo-background-video-play-button.webflow.io.

  • Hallo alle und vielen Dank für die Vorschläge.

    Im angesprochenen Fall "iFrame" ist es in der Tat wohl der einfachste Weg, über das Kontextmenü den iFrame separat weiter zu behandeln.

    Dennoch hätte mich das sehr interessiert, wie man den html-Quellcode direkt bekommen kann. Es scheint aber tatsächlich nur per AddOn zu funktionieren, weil dazu bestimmte Berechtigungen nötig sind. Kenne mich da aber gar nicht aus, daher erledigt.

    FF 115.x ESR auf Win10 Pro 64bit

    FF 115.x ESR auf Linux Mint

  • Ich habe es hinbekommen.

    Allerdings ist die Lösung sicherlich mit Pflegeaufwand verbunden, falls sich irgend etwas an der Seite oder in FF ändert.

    Als Grundlage diente das Userscript für den Menüeintrag "Google context search", denn da wird auch auf den Content zugegriffen.

    Das kam jetzt dabei heraus: ein Button, der beim Anklicken die Artikelbeschreibung (den iFrame) eines beliebigen ebay-Angebots in einem neuen Tab öffnet. Es muss nichts ausgewählt werden, nur die Seite angezeigt werden. Wird nichts gefunden, passiert nichts. Die URL steht zusätzlich auch in der Zwischenablage.

    Ich habe einfach das gesamte Script mit meinen Kommentaren hier eingestellt.

    Es ist noch nicht fehlerfrei, z.B. werden Fehler im Messagehandler nicht zurückgegeben, wenn z.B. die gesuchten Elemente nicht vorhanden sind. Zu sehen in der Konsole, sonst aber keine Auswirkung.

    Zur freien Verwendung, wenn es interessiert.

    FF 115.x ESR auf Win10 Pro 64bit

    FF 115.x ESR auf Linux Mint