0

I have a WebBrowser instance in my WPF application (System.Windows.Controls.WebBrowser). In the website I have the following JavaScript code.

// Javascript   
myNamespace = {};
myNamespace.helloJavaScriptMETHOD = function() { alert("Hello"); };

helloJavaScriptFUNCTION = function() { alert("Hello); };

I can call helloJavaScriptFUNCTION with

// C#
webBrowser.InvokeScript("helloJavaScriptFUNCTION");

How can I call helloJavaScriptMETHOD without changing the WebSite/JavaScript? I have tried the following WITHOUT success:

// C#
webBrowser.InvokeScript("myNamespace.helloJavaScriptMETHOD");
webBrowser.InvokeScript("(function(){ return myNamespace.helloJavaScriptMETHOD; })");
webBrowser.InvokeScript("myNamespace.helloJavaScriptMETHOD()");
koalabruder
  • 2,794
  • 9
  • 33
  • 40

1 Answers1

0

You may not be able to call a JavaScript method in a namespace directly but you can use eval. A similar technique was used to invoke JQuery. Look at How to call a jQuery function from .NET WebBrowser control using InvokeScript()?. It uses the wrong control but the technique may work here.

Community
  • 1
  • 1
akton
  • 14,148
  • 3
  • 43
  • 47