Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

How to run a Javascript function from VB and then get the return value?

Posted on 2008-10-15
7
Medium Priority
?
665 Views
Last Modified: 2010-04-21
Hi! :)

I currently have many libraries written in JavaScript and I do not want to translate them to Visual Basic 6.0. (NOT .net)

I need a way to call a JS function from VB and get the return value of the function back to VB.

I have been investigating and the following references might have part of the answer, but not all:
http://www.experts-exchange.com/Programming/Languages/Visual_Basic/Q_21057068.html?query=execScript&clearTAFilter=true
http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Controls/Q_21559213.html
http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/Q_21515401.html

The above references say how to execute JS code from VB, but what I am looking is for is to execute JS and get the values back to VB, which is NOT found there (or not clear enough)

I will award full points to any user who can provide me the JS and VB working code that would implement the following JS function - the simplest function ever-, being called from VB, and getting the result of the function back from JS to VB:

function add(x,y)
{
return x+y;
}

That is: VB should be able to send parameters to JS function, and then get the result.

Thanks to everyone in advance. Your help will be really useful! :)
Thanks!!!
0
Comment
Question by:rodrix385
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
7 Comments
 
LVL 27

Expert Comment

by:BigRat
ID: 22730245
What you do is to create a ScriptControl object, load your code into it, attach a few events and then run it.

This tutorial might get you started :- http://rookscape.com/vbgaming/tutBQ.php
There's one from Microsoft on calling functions and getting a result :-

http://support.microsoft.com/kb/184740/en-us
0
 

Author Comment

by:rodrix385
ID: 22868427
Hi BigRat,
Your answer was INCREDIBLE!!!!

You gave me the BEST solution ever! I am so happy and so greatful.

However, I am still having a little problem. I went through your tutorial which explained how to add new classes and modules to the VBS Script.

However, using JS Script, I can't seem to manage to do that. I get an error saying "Cannot not add object because it's empty" (refferiing to my new Class with additional commands).

Any clues?

Anyways, what I am trying to do is to get the ERROR information from Javascript. Now when I get an error in the JS code, it just says error, and I am looking for the Error Description + Line Number.

Could you help me on how to set that up? That would make the JS parser completely functional :) :) :)

I have searched everywhere on the internet but this topic seem unknown... so I guess you're the only one who can help me.

I have increased the Point Value.

I really appreciate your help.
Thanks for everything!
Rod
0
 
LVL 27

Accepted Solution

by:
BigRat earned 800 total points
ID: 22869193
1. Error

The ScriptControl supports an Event OnError, which you can set an event handler. I'm not sure but it's probably IConnection.

The control supports an Error property which returns an IScriptError interface. The properties Description,Line and Column of that interface will give you what you want.

2. Problems with JS

I'd ask you to post or send me your code and I'll look through it.

Tip: the control resides is msscript.ocx which is probably in System32. It you have the OLEViewer you can view the type library of this control and see what properties and methods are available (if you understand a bit about IDL).
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 

Author Comment

by:rodrix385
ID: 23994538
BigRat!

I can't believe how I left this question open!

Thank you for your wonderful answer. Thanks to you my VB and JS programming has changed completely.
THANK YOU THANK YOU THANK YOU!

In order to make up for the delay I am increasing the points and assigning all of them to you.

THANKS!
Best,
Rod
0
 

Author Closing Comment

by:rodrix385
ID: 31506625
THANK YOU THANK YOU THANK YOU!!!
0
 
LVL 27

Expert Comment

by:BigRat
ID: 23999606
Rat always waits patiently for cheese!
0
 

Author Comment

by:rodrix385
ID: 24033538
Thanks Bigrat!!!


I have another question specifically for you on this same subject :)

Check it here:
http://www.experts-exchange.com/Programming/Languages/Visual_Basic/Q_24282741.html

Thanks!
0

Featured Post

Enroll in October's Free Course of the Month

Do you work with and analyze data? Enroll in October's Course of the Month for 7+ hours of SQL training, allowing you to quickly and efficiently store or retrieve data. It's free for Premium Members, Team Accounts, and Qualified Experts!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
Today, the web development industry is booming, and many people consider it to be their vocation. The question you may be asking yourself is – how do I become a web developer?
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…
Suggested Courses

636 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question