Kyle
Kyle

Reputation: 3042

How do you programmatically execute javascript as if from the browser bar?

For example if you type in the browser bar javascript:alert('hai'); it shows a pop up. Is that possible to do in a programming language?

For example in java would I be able to connect to a website, and execute it's javascript somehow in my program?

Example:

Javascript in website:

function setStatus(a) {
    if (a == 1) status1 = true;
    else if (a == 2) status2 = true;
    else if (a == 3) status3 = true
}

Java program:

URL site = new URL("http://somesite.com/page.html");
URLConnection siteConnect = site.openConnection();
siteConnect.connect();

Would I be able to execute setStatus(1) setStatus(2) setStatus(3) inside the java program? How could it be done?

Upvotes: 2

Views: 342

Answers (2)

coffeetocode
coffeetocode

Reputation: 1233

You're looking for an environment that includes both a Javascript engine and the browser DOM and JS builtins; therefore your easiest bet is going to be something like a browser.

First stop for you should probably be HTMLUnit , which has Javascript support via Rhino and provides all the browser-specific JS objects. That may be everything you need.

If you want to go deeper, you could hook into a full browser engine by developing against Webkit. Two ports to look at are QtWebkit (if speed is not a criteria for you) or Google's Chromium. Beware that setting either of those up will be a time investment.

Upvotes: 2

Abdullah Jibaly
Abdullah Jibaly

Reputation: 54780

Not with just plain Java. Your browser can do that because it has a Javascript runtime installed, Java doesn't have that by default.

One option you may want to consider is Rhino, a Javascript implementation in Java. You'd be able to run most standard Javascript this way, however anything that interacts with the browser's DOM (like the window object) may not work correctly.

Upvotes: 1

Related Questions