uwp

Using JavaScript in WebView

Introduction#

This document shows you how you can use JavaScript in WebView.

This document cover: Getting HTML from the WebView, Entering text in the text box on the website, Simulate click to click a website button

Syntax#

  • await webView.InvokeScriptAsync("eval", new string[] { functionString }) - to use JavaScript
  • .documentElement - to get a reference to the root node of the document
  • .getElementsByClassName(Class_Name) - to get elements usign Class Name
  • .getElementsByTagName(Tab_Name) - to get elements using Tag Name
  • .getElementById(ID) - to get element using ID
  • .nodeName - to get the node name
  • .childNodes - to get the child elements
  • .outerHTML - to Get the Outer HTML
  • .innerHTML - to Get the Inner HTML
  • .innerText - to Get or Set InnerText
  • .click() - to Simulate click

Remarks#

Here is a Sample app to LogIn to StackOverFlow

Getting HTML from the WebView

Use .outerHTML to get the HTML

Here is a code sample to get the entire HTML of the website

private async void GetHTMLAsync()
{
    var siteHtML = await webView.InvokeScriptAsync("eval", new string[] { "document.documentElement.outerHTML;" });
}

Entering text in the text box on the website

Use .innerText to set the value

Here is a code sample to enter text in Search Box on Bing website

private async void EnterTextAsync(string enterText)
{
    var functionString = string.Format(@"document.getElementsByClassName('b_searchbox')[0].innerText = '{0}';", enterText);
    await webView.InvokeScriptAsync("eval", new string[] { functionString });
}

Simulate click to click a website button

Use .click() to simulate click

Here is a code sample to click search button on Bing website

private async void SimulateClickAsync()
{
    var functionString = string.Format(@"document.getElementsByClassName('b_searchboxSubmit')[0].click();");
    await webView.InvokeScriptAsync("eval", new string[] { functionString });
}

This modified text is an extract of the original Stack Overflow Documentation created by the contributors and released under CC BY-SA 3.0 This website is not affiliated with Stack Overflow