Finding, convert text input into hyperlink in JavaScript
The bellow article is for finding a text on the webpage and convert that text into a link.
we can use this article by two way
Getting search text and link herf through the prompt of javascript or pass default search text and link href to the function.
How to use this code:-
1) Just copy and paste the javascript code given bellow to your page.
2) call the function searchPrompt_aslink in the button.
3) fuction searchPrompt_aslink use three parameters
a) searchtext set blank ('') if you want to use prompt to accepting the searchtext otherwise set a default value for searchtext.
b) treatAsPhrase set true if you want to treat the search text as a single pharse otherwise false.
c) href set blank ('') or leave it (optional parameter) for using the prompt of java script to entering the link href otherwise set a default value of link href.
we can use this article by two way
Getting search text and link herf through the prompt of javascript or pass default search text and link href to the function.
How to use this code:-
1) Just copy and paste the javascript code given bellow to your page.
2) call the function searchPrompt_aslink in the button.
3) fuction searchPrompt_aslink use three parameters
a) searchtext set blank ('') if you want to use prompt to accepting the searchtext otherwise set a default value for searchtext.
b) treatAsPhrase set true if you want to treat the search text as a single pharse otherwise false.
c) href set blank ('') or leave it (optional parameter) for using the prompt of java script to entering the link href otherwise set a default value of link href.
<script type="text/javascript">
/*
* This is the function that actually
highlights a text string by
* adding HTML tags before and after all
occurrences of search
* term. You can pass your own tags if
you'd like, or if the
* highlightStartTag or highlightEndTag
parameters are omitted or
* are empty strings then the default
<font> tags will be used.
*/
function
doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag) {
// the
highlightStartTag and highlightEndTag parameters are optional
if
((!highlightStartTag) || (!highlightEndTag)) {
highlightStartTag = "<font style='color:blue;
background-color:yellow;'>";
highlightEndTag = "</font>";
}
// find
all occurences of the search term in the given text, // and
add some "highlight" tags to them (we're not using a
//
regular expression search, because we want to filter out
//
matches that occur within HTML tags and script blocks, so
// we
have to do a little extra validation)
var
newText = "";
var
i = -1;
var
lcSearchTerm = searchTerm.toLowerCase();
var
lcBodyText = bodyText.toLowerCase();
while
(bodyText.length > 0) {
i =
lcBodyText.indexOf(lcSearchTerm, i + 1);
if
(i < 0) {
newText += bodyText;
bodyText = "";
} else
{
//
skip anything inside an HTML tag
if
(bodyText.lastIndexOf(">", i)
>= bodyText.lastIndexOf("<",
i)) {
// skip anything inside a <script> block
if (lcBodyText.lastIndexOf("/script>",
i) >= lcBodyText.lastIndexOf("<script",
i)) {
newText +=
bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i,
searchTerm.length) + highlightEndTag;
bodyText =
bodyText.substr(i + searchTerm.length);
lcBodyText =
bodyText.toLowerCase();
i = -1;
}
}
}
}
return
newText;
}
/*
*This is sort of a wrapper function to
the doHighlight function.
*It takes the searchText that you
pass, optionally splits it into
*separate words, and transforms the
text on the current web page.
*Only the "searchText" parameter is required; all other parameters
*are optional and can be omitted.
*/
function
highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure,
highlightStartTag, highlightEndTag) {
//if the
treatAsPhrase parameter is true, then we should search for
//the
entire phrase that was entered; otherwise, we will split the
//search
string so that each word is searched for and highlighted
// individually
// individually
if (treatAsPhrase) {
searchArray = [searchText];
} else
{
searchArray = searchText.split(" ");
}
if
(!document.body || typeof
(document.body.innerHTML) == "undefined")
{
if
(warnOnFailure) {
alert("Sorry, for some reason the text of this page is
unavailable. Searching will not work.");
}
return
false;
}
var
bodyText = document.body.innerHTML;
for
(var i = 0; i < searchArray.length; i++) {
bodyText =
doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);
}
document.body.innerHTML = bodyText;
return
true;
}
/*
* This displays a dialog box that
allows a user to enter their own
* search terms to highlight on the
page, and then passes the search
* text or phrase to the
highlightSearchTerms function. All parameters
* are optional.
*/
function
searchPrompt_aslink(searchText, treatAsPhrase, href) {
// This
function prompts the user for any words that should
// be
highlighted on this web page
if
(treatAsPhrase) {
promptText = "Please enter the phrase you'd like to search
for:";
} else
{
promptText = "Please enter the words you'd like to search for,
separated by spaces:";
}
if
(!searchText)
searchText = prompt(promptText, "search");
if
(!href)
href = prompt("Please Enter Link Href", "http://c-sharp-corner.blogspot.com");
highlightStartTag = "<a href='" + href + "'>";
highlightEndTag = "</a>";
if
(!searchText) {
alert("No
search terms were entered. Exiting function.");
return
false;
}
return
highlightSearchTerms(searchText, treatAsPhrase, true,
highlightStartTag, highlightEndTag);
}
</script>
Use this for showing prompt for accepting SearchText and Link Href.
Try Demo Here Click bellow<input type="button" value="search" onclick="return searchPrompt_aslink('',true,'')" />
Use this for creating link by Default SearchText and Link Href without asking prompt.
Try Demo Here Click bellow<input type="button" value="search" onclick="return searchPrompt_aslink('Try Demo Here',true,'http://http://c-sharp-corner.blogspot.com/search/label/JavaScript')" />