Forum: PC Hard- und Software textbrowser mit javascript


von J. W. (nuernberger)


Lesenswert?

lynx kann es nicht (sowieso sehr veraltet)
w3m auch nicht
links (links2,elinks) hat es mal angeboten, ist an aber nicht mehr 
drin, da "zu buggy".
Habe versucht, links vom Source zu übersetzen, "./configure" 
entsprechend gesetzt.
Aber er braucht SpiderMonkey, das aktuelle (2.4) bringt 
Übersetzungsfehler, das zweitälteste, was in Debian wheezy noch 
unterstützt wird (1.8.5) auch.
Offerbar hat sich bei SpiderMonkey zuviel geändert, was bei links 
nicht nachgezogen wurde.

Lösungsvorschläge, Alternativen ?

von J. W. (nuernberger)


Lesenswert?

Heute ist auf elinks.or.cz eine neue version (elinks-current-0.13), die 
man mit libmozjs185 (SpiderMonkey 1.8.5) fehlerfrei übersetzen und 
installieren kann.
Die JavaScript-Unterstützung ist dennoch nicht fehlerfrei (buggy)
Alternativen zu elinks sind willkommen.

von Planlos (Gast)


Lesenswert?

Was ist denn genau der Anwendungfall?

Brauchst du den Text-Browser wirklich zum interaktiven Surfen im Web?

Oder eher für Scripting / automatisierten Abruf?

Falls letzteres, sind diverse Webkit-Abkömmlinge (phantomjs z.B.) evtl. 
eine Option.

von J. W. (nuernberger)


Lesenswert?

Ja, wollte schon damit browsen bei Websiten, wo das mit text-darstellung 
noch moeglich ist. (Dass die Darstellung sehr eingeschraenkt ist, ist 
mir bewusst)
Dabei ging es mir, von einer externen Maschine aus zu browsen, wo ich 
per ssh eingeloggt bin.

Mit elinks funktioniert kein JQuery, weil vieles nicht implementiert ist 
(z.B. createElement, clearTimeout),
damit kann ich das Tool vergessen.
Andere JS-faehige Textbrowser scheint es nicht zu geben.

von Planlos (Gast)


Lesenswert?

J. W. schrieb:
> Andere JS-faehige Textbrowser scheint es nicht zu geben.

Liegt vermutlich daran, dass man zwar das pure JS, nicht aber das ganze 
DOM/CSS usw. aussenrum einfach im Textmodus implementiert kriegt.
Jedenfalls nicht, ohne vorab alles virtuell pixelbasiert zu rendern, und 
die Text-Darstellung nachrangig zu berechnen.

Viele JS-Bibliotheken machen z.B. zuallererst einige Tests auf diverse 
Browser (meist: IE) - Bugs, deren Box-Model usw.
Dazu werden dann beispielsweise unsichtbare DIVs mit speziellen 
Margin/Border Eigenschaften erzeugt, und anschließend ihre 
Pixel-Position am Bildschirm ausgelesen.

Nicht einfach umzusetzen, und macht m.M.n. auch wenig Sinn.

J. W. schrieb:
> Dabei ging es mir, von einer externen Maschine aus zu browsen, wo ich
> per ssh eingeloggt bin.

lass auf der remote-maschine einen Proxy laufen, mach den Proxy-Port per 
SSH-Port-Forwarding von lokal erreichbar, nutze einen Lokalen Browser 
zum Rendern?
(Am einfachsten: Nutze den SSH-Integrierten SOCKS-Proxy.
ssh -D localhost:8080 user@remote.box
Fenster offenlassen. ggfs timeout durch "vmstat 10" o.Ä. verhindern.

im firefox als socks-host localhost:8080 angeben

Erfolg z.B. auf
http://www.heise.de/netze/tools/meine-ip-adresse/
testen
)

von J. W. (nuernberger)


Lesenswert?

Planlos schrieb:
> Liegt vermutlich daran, dass man zwar das pure JS, nicht aber das ganze
> DOM/CSS usw. aussenrum einfach im Textmodus implementiert kriegt.

Glaube ich nicht.
Vor ein paar Jahren habe ich mit SpiderMonkey gearbeitet (so 
Web-Automatisierungs-Sachen), auch mit Rhino.
Das ist ein riesengrosser Aufwand.

Wenn man anschaut, wer hinter z.B. elinks steckt, das sind ein paar 
czechische Entwickler. Die kriegen das nicht so schnell gestemmt, wie 
andere Browser-Entwickler (firefox und Co).
Am Textmodus liegt das m.E. nicht.

von Planlos (Gast)


Lesenswert?

J. W. schrieb:
> Am Textmodus liegt das m.E. nicht.

Natürlich liegt das daran.

Bislang rendern die direkt auf/für den Textmodus.
Jetzt müssten sie eine zweite, komplett getrennte Grafik-Render-Engine 
dazubauen, deren Ergebnis nie Sichtbar wird, und die für den 
eigentlichen Einsatzweck ("Text-Basierter Browser") überflüssig ist wie 
ein Kropf.

Der Text-Browser müsste auch alle Bilder der Webseite herunterladen, und 
durch JPEG/PNG Parser jagen, damit das Javascript die Bildgröße auslesen 
kann, und ähnliche Absurditäten.

Andersherum ist es einfacher:

Man nimmt eine Grafik-Fähige und Javascript-Fähige Render-Engine (Webkit 
bietet sich an), lässt die werkeln, und wenn sie fertig ist, zieht man 
aus dem mit CSS/Layout/Positionsdaten angereichteten DOM den Text 
heraus, um eine Text-Modus-Anzeige hinzubiegen.
(damit meine ich nicht: gegen "libaa" linken)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.