The following sample demonstrates how to useJSFunction for invoking methods of a JavaScript object (JSObject).


using DotNetBrowser;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace JavaScriptObjectsSample
{
    class Program
    {
        static void Main(string[] args)
        {
            Browser browser = BrowserFactory.Create();

            JSValue value = browser.ExecuteJavaScriptAndReturnValue("document");
            if (value.IsObject() && value is JSObject)
            {
                JSObject document = (JSObject)value;
                // Call document.title = "New Document Title";
                bool success = document.SetProperty("title", JSValue.Create("New Document Title"));
                Console.Out.WriteLine("Title has been updated successfully: " + success);

                // Call document.write("Hello World!");
                JSValue method = document.GetProperty("write");
                if (method.IsFunction() && method is JSFunction)
                {
                    JSFunction documentWrite = (JSFunction)method;
                    documentWrite.Invoke(document, JSValue.Create("Hello World!"));
                }

                JSValue documentContent = browser.ExecuteJavaScriptAndReturnValue("document.body.innerText");
                if (documentContent.IsString())
                {
                    Console.Out.WriteLine("New content: " + documentContent.GetString());
                }
            }
            
            browser.Dispose();
        }
    }
}