53

I need to configure my router remotely, and links etc won't work because the router config page uses javascript and refuses to run without it.

Obviously, shame on netgear for being this crap, but is there a text mode browser that will allow their abortion to run?

18

edbrowse claims to support JavaScript (but I've never used it)

As ed is the standard editor edbrowse may become the standard browser ;-).

  • I tried going down this path; it doesn't appear to be a web browser akin to lynx. It appears to be far more useful if you want to write a script for traversing a website. – Brian Vandenberg Apr 20 at 22:17
16

Check which version of elinks you have.

elinks -version
ELinks 0.12pre6 #Not the version that supports ECMAScript

The article "Building eLinks Text-based Web Browser with (Some Sort of) JavaScript Support" describes how to get javascript configured in elinks.

It notes that the resulting version of elinks still doesn't work with lots of web pages, which is perhaps why javascript support is not enabled by default in the elinks version in Ubuntu.

Other even less successful alternatives are noted also: links2 and w3m + w3m-js extension.

A quick summary of the commands for building an elinks that supports ECMAScript follows:

wget http://elinks.or.cz/download/elinks-current-0.13.tar.bz2
tar xjvf elinks-current-0.13.tar.bz2
cd elinks-0.13*
./configure
#Check for ECMAScript support. 
make -j8
sudo make install
  • 1
    Note that you need to have libmozjs185-dev package installed, otherwise 0.13 will be no more useful than 0.12pre6 or any other without ECMAScript support. Also, some configuration is necessary to enable ECMAScript. See another answer for details. – Ruslan Apr 10 '18 at 14:50
  • It looks like libmozjs185 has been removed from Ubuntu 18.04 Bionic. The packages libmozjs-38-dev and libmozjs-52-dev exist, but the latest master-branch code of elinks won't use them to compile in JS support. It specifically wants mozjs185 or mozilla-js. – David Baucum May 17 '18 at 15:20
  • 1
    @DavidBaucum see this StackOverflow answer telling how to install it. – Ruslan Sep 30 at 10:06
9

None of the above answers worked for me out of the box. elinks though is the only one pretty much capable this is what I did:

sudo apt install libmozjs185-dev pkg-config libssl-dev

Very important to have installed pkg-config, without it configure cannot detect SpiderMonkey Javascript engine, without libssl-dev you cannot access HTTPS sites.

wget http://elinks.or.cz/download/elinks-current-0.13.tar.bz2

unpack:

tar xvf elinks-current-0.13.tar.bz2
cd elinks-0.13-20171228/

then configure and check if javascript is seen:

./configure | grep -i "javascript"

Result should be:

ECMAScript (JavaScript) ......... SpiderMonkey document scripting

if result is

ECMAScript (JavaScript) ......... no 

check the steps above until the right result is give.

Then make the sources

make -j8

And install it:

sudo make install

Now enable and try it, by running:

elinks ./test/ecmascript/protocol.html

Press Alt+S, O Key down () and then Space on ECMAScript, Alt+E on Enable change to 1

enter image description here

Alt+V to save and then OK

Now it's able to execute some Javascript.

6

Browsh is a modern text-based browser, which runs on the terminal. According to its website, "It renders anything that a modern browser can; HTML5, CSS3, JS, video and even WebGL". It works much better than elinks. It's written in Go, so it's available on most major platform (Linux, Mac, Windows). There's also a live demo, which can be accessed via SSH: $ ssh brow.sh.

4

There is a good feature comparison table at Linux Journal

  • 11
    Would like to point out that presently that article is over 10 years old, from 2005. – user1359 Apr 16 '16 at 16:07
1

See this answer: as of v0.23, Web Adjuster has a PhantomJS option, which can partially Javascript-enable any browser with the help of PhantomJS. I say "partially" because it's not (yet?) working with POST forms and Javascript-only links, but it's fine for reading the text of a page which requires Javascript before showing you that text.

sudo apt-get install python-selenium
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-i686.tar.bz2
tar -jxvf phantomjs-2.1.1-linux-i686.tar.bz2 
cd phantomjs-2.1.1-linux-i686/
sudo mv bin/phantomjs /usr/local/bin/
cd ..
sudo apt-get install python-tornado
wget http://ssb22.user.srcf.net/adjuster/adjuster.py
python adjuster.py --PhantomJS --real_proxy

and in another window or tab

http_proxy=http://localhost:28080 lynx http://site-that-needs-javascript.example.com/

Disclosure: Web Adjuster maintainer here.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.