Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8564847
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 11, 20262026-06-11T17:17:24+00:00 2026-06-11T17:17:24+00:00

I am attempting to implement a search feature for text displayed in a webbrowser

  • 0

I am attempting to implement a search feature for text displayed in a webbrowser control. I have a search function which works correctly to highlight text, although it currently accomplishes this by creating a search bar in javascript in the webbrowser. The problem with this is that depending on the size of the page, the javascript search bar is always a different size, which is very confusing. I would like to be able to pass a search value entered by the user in a textbox in my WP7 application to this javascript function, and then have it simply highlight the values. I do not know how to pass a value to a javascript function though, and I am having much difficulty making this work.

Javascript search function (in a text file)

javascript:(
function()
{
function G()
{
    var pf=doc.getElementById('pf');
    var qt=doc.getElementById('qt');
    if(null==pf)
    {
        pf=doc.createElement('div');
        pf.id='pf';
        var s=pf.style;
        s.position='absolute';
        s.zIndex='99';
        s.top=(scT||scBT)+'px';
        s.left=(scL||scBL)+'px';
        s.width='100%';
        s.backgroundColor='#FFFF00';
        pf.appendChild(doc.createTextNode('Search: '));
        qt=doc.createElement('input');
        qt.id='qt';
        qt.type='text';
        pf.appendChild(qt);
        var sb=doc.createElement('input');
        sb.type='button';
        sb.value='Find';
        sb.onclick=function()
        {
            P(qt.value)
        };
        pf.appendChild(sb);
        doc.body.appendChild(pf);
    }
    else
    {
        pf.style.display='inline';
        count=0;
    }
}
function P(s)
{
    document.getElementById('pf').style.display='none';
    if(s==='')
        return;
    var n=srchNode(document.body,s.toUpperCase(),s.length);
    alert("Found "+count+" occurrence"+(count==1?"":"s")+" of '"+s+"'.");
    pf.parentNode.removeChild(pf);
    return n;
}
function srchNode(node,te,len)
{
    var pos,skip,spannode,middlebit,endbit,middleclone;
    skip=0;
    if(node.nodeType==3)
    {
        pos=node.data.toUpperCase().indexOf(te);
        if(pos>=0)
        {
            spannode=document.createElement("SPAN");
            spannode.style.backgroundColor="red";
            middlebit=node.splitText(pos);
            endbit=middlebit.splitText(len);
            middleclone=middlebit.cloneNode(true);
            spannode.appendChild(middleclone);
            middlebit.parentNode.replaceChild(spannode,middlebit);
            ++count;
            skip=1;
            }
        }
        else
        {
            if(node.nodeType==1&&node.childNodes&&node.tagName.toUpperCase()!="SCRIPT"&&node.tagName.toUpperCase!="STYLE")
            {
                for(var child=0;child<node.childNodes.length;++child)
                {
                    child=child+srchNode(node.childNodes[child],te,len);
                }
            }
        }
        return skip;
    }
    var count=0,scL=0,scT=0,scBL=0,scBT=0;
    var w=window,doc=document;
    if(typeof doc.body!='undefined'&&typeof doc.body.scrollLeft!='undefined')
    {
        scBL=doc.body.scrollLeft;
        scBT=doc.body.scrollTop;
    }
    if(typeof doc.documentElement!='undefined'&&typeof doc.documentElement.scrollLeft!='undefined')
    {
        scL=doc.documentElement.scrollLeft;
        scT=doc.documentElement.scrollTop;
    }
    G();
})()

Find on Page method

public void FindOnPage()
    {
        var resource = Application.GetResourceStream(new Uri("Resources/FindOnPage/FindOnPage.txt", UriKind.Relative));
        string text;
        StreamReader sr = new StreamReader(resource.Stream);

        //while((text = sr.ReadToEnd()) != null) 
        if ((text = sr.ReadToEnd()) != null)
        {
            TheWebBrowser.InvokeScript("eval", text);
        } 
    }

Assuming that I had a searchbar named SearchBar, how would i pass the text to the user input through the javascript function, so that the text will be highlighted? I have no experience with javascript, so any assistance will be greatly appreciated on the subject!

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-11T17:17:25+00:00Added an answer on June 11, 2026 at 5:17 pm

    There is no direct way of passing it.
    You can string replace the parameter before calling eval, first modify your javascript like this

    javascript:(
    function(searchString)
    {
    function P(s)
    {
        if(s==='')
            return;
        var n=srchNode(document.body,s.toUpperCase(),s.length);
        alert("Found "+count+" occurrence"+(count==1?"":"s")+" of '"+s+"'.");
        return n;
    }
    function srchNode(node,te,len)
    {
        var pos,skip,spannode,middlebit,endbit,middleclone;
        skip=0;
        if(node.nodeType==3)
        {
            pos=node.data.toUpperCase().indexOf(te);
            if(pos>=0)
            {
                spannode=document.createElement("SPAN");
                spannode.style.backgroundColor="red";
                middlebit=node.splitText(pos);
                endbit=middlebit.splitText(len);
                middleclone=middlebit.cloneNode(true);
                spannode.appendChild(middleclone);
                middlebit.parentNode.replaceChild(spannode,middlebit);
                ++count;
                skip=1;
                }
            }
            else
            {
                if(node.nodeType==1&&node.childNodes&&node.tagName.toUpperCase()!="SCRIPT"&&node.tagName.toUpperCase!="STYLE")
                {
                    for(var child=0;child<node.childNodes.length;++child)
                    {
                        child=child+srchNode(node.childNodes[child],te,len);
                    }
                }
            }
            return skip;
        }
        var count=0,scL=0,scT=0,scBL=0,scBT=0;
        var w=window,doc=document;
        if(typeof doc.body!='undefined'&&typeof doc.body.scrollLeft!='undefined')
        {
            scBL=doc.body.scrollLeft;
            scBT=doc.body.scrollTop;
        }
        if(typeof doc.documentElement!='undefined'&&typeof doc.documentElement.scrollLeft!='undefined')
        {
            scL=doc.documentElement.scrollLeft;
            scT=doc.documentElement.scrollTop;
        }
        P(searchString);
    })("#search#")
    

    Then in your C# replace #search# with your SearchString.

    public void FindOnPage()
        {
            var resource = Application.GetResourceStream(new Uri("Resources/FindOnPage/FindOnPage.txt", UriKind.Relative));
            string text;
            StreamReader sr = new StreamReader(resource.Stream);
    
            //while((text = sr.ReadToEnd()) != null) 
            if ((text = sr.ReadToEnd()) != null)
            {
            text = text.Replace("#search#",SearchBar.Text); //Replace SearchBar.Text with the string you want to search    
            TheWebBrowser.InvokeScript("eval", text);
            } 
        }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm attempting to implement a Save/Load feature into my small game. To accomplish this
I am attempting to implement a search box in my website, my website is
I am attempting to implement a function that sorts a randomly generated vector using
I'm attempting to implement complete search functionality in my ASP.NET MVC (C#, Linq-to-Sql) website.
I'm attempting to implement a curve interesection algorithm known as bezier clipping, which is
I am attempting to implement HotTracking for a tab control in Wpf. My understanding
I'm attempting to implement a custom search dialog in a WPF program. The Parent
I'm attempting to implement a specific type of version control for several of my
I am attempting to implement global error handling in my MVC application. I have
I'm attempting to implement a package-scanning feature, similar to Spring's component-scan , for the

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.