I am using Satadip Dutta's search engine script inside an iframe

<!--------------------------------------------------------------------------------
    Please  remove this section from the actual page when 
    you actually  use this page.

    Here are the thing you need to modify in the page

    1.title[0]=no_of_urls 
    ( this is for the total number of urls which will be searched )

    2. fill in the the details

    title[1]="fill in the list of keywords here"
    desc[1]="fill in the description of the url here "
    links[1]="http://yoursite.com/yourpage.html"

    (rememeber all of these should be encapsulated in the quotes)
    (all the keywords should be seperated by blanks and should be in lowercase)

    3. You can also change the heading of results
    Replace 'Search Results' by 'your_title'

    Copyright for all the HTMLSearch code rests with with Satadip Dutta 
    //------------------------------------------------------------------------->



    <HTML>
    <HEAD>
    <TITLE>  Search Engine </TITLE>
    <script>

    <!-- Begin copyright - This must be retained and posted as is to use this script -->

    <!--// This Script was created by Satadip Dutta. 
    // Email: sat_dutta@post1.com  / satadipd@inf.com 
    // URL:http://dutta.home.ml.org
    // Version 1.1-IExp 
    // Please honor my hard work, if you use a variant of this in your page, 
    // then please email me :) and keep these comments in the Script.
    // This code is Copyright (c) 1997 Satadip Dutta
    // all rights reserved.
    // License is granted to user to reuse this code on their own Web site 
    // if, and only if, this entire copyright notice is included. The Web Site
    // containing this  script   must be a not-for-profit ( non-commercial ) web site. 
    // Exclusive written permission must be obtained before using  this version of the search engine
    //-->

    <!-- End copyright - This must be retained and posted as is to use this script -->

    title = new Object();
    desc = new Object();
    links= new Object();
    matched= new Object();
    keywords= new Object();
    found= new Object();
    var temp=0;
    // actual location or the item to be searched
    // description of he location
    // actual link
    // percentage match found
    // keywords as parsed from the input
    // # of titles present in the database
    title[0]=14
    //no of keywords after parsing
    keywords[0]=0
    //no of  matches found.
    found[0]=0

    <!-- Begin List of Searchable Items -->

    <!--put the list of the links and descriptions here!!-->

    title[1]="Introduction FAQs Java JavaScript beginner"
    desc[1]="JavaScript Primer (Part 1 of 2) "
    links[1]="http://www.javascriptkit.com/primer1.htm"
    matched[1]=0

    title[2]="objects document function parameter last modified date"
    desc[2]="JavaScript Primer (Part 2 of 2) "
    links[2]="http://www.javascriptkit.com/primer2.htm"
    matched[2]=0

    title[3]="alert confirm prompt box pop up dialog"
    desc[3]="Creating Alert, Confirm, and Prompt Boxes"
    links[3]="http://www.javascriptkit.com/alert.htm"
    matched[3]=0

    title[4]="event handler onClick onLoad onMouseover onMouseout onUnload"
    desc[4]="Understanding Event Handlers in JavaScript"
    links[4]="http://www.javascriptkit.com/event.htm"
    matched[4]=0


    title[5]="object model tree accessing forms "
    desc[5]="Accessing and Validating Forms Using JavaScript (Part 1 of 2)"
    links[5]="http://www.javascriptkit.com/form1.htm"
    matched[5]=0

    title[6]="form validation onBlur onSubmit"
    desc[6]="Accessing and Validating Forms Using JavaScript (Part 2 of 2)"
    links[6]="http://www.javascriptkit.com/form2.htm"
    matched[6]=0



    title[7]="date object write html setTimeout function"
    desc[7]="Creating Time Dependent Scripts using JavaScript (Part 1 of 2)"
    links[7]="http://www.javascriptkit.com/time1.htm"
    matched[7]=0


    title[8]="live clock watermark"
    desc[8]="Creating Time Dependent Scripts using JavaScript (Part 2 of 2)"
    links[8]="http://www.javascriptkit.com/time2.htm"
    matched[8]=0


    title[9]="image preload rollover effect filter"
    desc[9]="Images and JavaScript- Apples and Apples (Part 1 of 2)"
    links[9]="http://www.javascriptkit.com/image1.htm"
    matched[9]=0


    title[10]="rollover effect"
    desc[10]="Images and JavaScript- Apples and Apples (Part 2 of 2)"
    links[10]="http://www.javascriptkit.com/image2.htm"
    matched[10]=0

    title[11]="new window open secondary reload close toolbar menubar status bar "
    desc[11]="Windows and JavaScript"
    links[11]="http://www.javascriptkit.com/window.htm"
    matched[11]=0

    title[12]="frames access object multiple"
    desc[12]="Loading Two frames with one link."
    links[12]="http://www.javascriptkit.com/twoframes.htm"
    matched[12]=0

    title[13]="selection list options array text vale"
    desc[13]="I'll hava a double combo please (Part 1 of 2)"
    links[13]="http://www.javascriptkit.com/combos1.htm"
    matched[13]=0

    title[14]="combo link box jump"
    desc[14]="I'll hava a double combo please (Part 2 of 2)"
    links[14]="http://www.javascriptkit.com/combos2.htm"
    matched[14]=0

    <!-- End list of Searchable items -->

    function search(){
    var skeyword=document.searchengine.keywords.value.toLowerCase();
    var check=1;
    var pos=0;
    var i=0;
    var j=0;
    var  itemp=0;
    var config='';

    while (true)
        {
        if (skeyword.indexOf("+") == -1 )
            {
            keywords[check]=skeyword;
            break;
            }
        pos=skeyword.indexOf("+");
        if (skeyword !="+") 
        {
        keywords[check]=skeyword.substring(0,pos);
        check++;
        }
        else
        {
        check--;
        break;
        }
        skeyword=skeyword.substring(pos+1, skeyword.length);    
        if (skeyword.length ==0)
            {
            check--;
            break;
            }

        }
    // the keywords have been put in keywords object.
    keywords[0]=check;

    // matching and storing the matches in matched
    for ( i=1; i<=keywords[0];i++)
        {
        for (j=1;j<=title[0];j++)
            {
            if (title[j].toLowerCase().indexOf(keywords[i]) > -1 )
                {
                  matched[j]++;
                }
            }   
        }
    // putting all the indexes of the matched records  in found

    for (i=1;i<=title[0];i++)
    {
        if (matched[i] > 0 )
            {
              found[0]++;
            // increment the found  
              found[found[0]]=i;

            }   
    }



    for (i=1;i<=found[0]-1;i++)
        {
        for(j=i+1;j<=found[0];j++)
            {
            if ( matched[found[i]]< matched[found[j]] )
                {
                temp= found[j];
                found[j]=found[i];
                found[i]=temp;
                }
            }
        }

    // end of sort

    output = self;
    output.document.write('<html>');
    output.document.write('<head>');
    output.document.write('<script>');
    output.document.write('window.onerror=new Function("return true")');
    output.document.write('<\/script>');
    output.document.write('<title> Search Results </title>');
    output.document.write('</head>');
    output.document.write('<BODY bgcolor=#ffffff  text=#000000  link=#990099 vlink =#339966 >');

    output.document.write('<center> <h1> Search Results </h1></center>');    
    output.document.write('<hr>');
    output.document.write(' The Keyword(s) you searched :: '.big() )
    for (i=1;  i<=keywords[0]; i++)
        {
        output.document.write( keywords[i].bold() +"   ");
        }
    output.document.write('<br>');

    if (found[0]==0)
        {
        //alert(found[0]);
        output.document.write('<hr>');
        output.document.write("<b>No matches resulted in this search </b> <br>");
        output.document.write("You may close the results and reduce the length/number  of the keywords  <br>");
        }
    else
        {
        // data has been found
        output.document.write(" <hr> <b> The Results of the search are  : </b>  ");
        output.document.write( found[0] +"  Entries found  ".italics());
        output.document.write("<table border=1 width=100%>");
        for (i=1; i<=found[0];i++)
            {
            output.document.write("<tr><td valign=top bgcolor=#9999ff>");
            output.document.write("<h3>" +i +"</h3>");
            output.document.write("<td valign=top>");
            itemp=found[i];
            output.document.write(desc[itemp].bold() +"<br>" +
            links[itemp].link(links[itemp])+"<br>");
            temp= (matched[itemp]/keywords[0])*100
            output.document.write("<i> Matched  with keywords  :: " +temp+" %  </i>" );
            matched[itemp]=0
            } 
        found[0]=0;
        output.document.write("</table>");
        }
    output.document.write ('This search was created by   &copy <a href="http:\\dutta.home.ml.org"> Satadip Dutta</a>    1997');
    output.document.write ("<hr>");
    //output.document.write ("<form><center>"); 
    output.document.write("<center>Hit the refresh button to return to the search<center>");
    //output.document.write ("<input type='button' value='Start Another Search' onClick = 'self.close()'"); 
    //output.document.write ("<center></form>");

    output.document.write ("</body></html>"); 
    output.document.close();
    }
    </script>

    </HEAD>
    <BODY BGCOLOR=white TEXT=black LINK=#0000FF VLINK=#6600AA ALINK=#6600AA>

    <center>
    <H1>Search Engine</H1>
    </center>
    <hr>
    This is a search engine implemented in Javascript. You will need a
    Java Script enabled browser to run this search.
    <hr>
    <P>
    </P>

    <TABLE BORDER=0 CELLSPACING=5 CELLPADDING=5>
    <TR>
    <TD WIDTH="20%" ALIGN="left">
    This search is NOT case sensitive.
    </TD>
    <TD WIDTH="80%" ALIGN="left">
    Put "+" between keywords in a list if using more than one keywords.
    </TD>
    </TR>
    </TABLE>


    <form  name="searchengine" onSubmit="search()">

    <center>
    Keywords:
    <input type = text   name ="keywords" value=""  maxlength=40>
    <input type = submit name="go" Value="SEARCH" onClick="search()">
    <br>
    <hr>
    <font size="-1">
    This search was created by &copy <a href="http://dutta.home.ml.org">Satadip Dutta</a> 1997<BR>
    </font>
    </center>
    </form>

    </BODY>
    </HTML>

I am trying to get the results links when clicked to open into the main window.
Not sure whether or where to use either target="_blank" or window open()

this is the line that prints the link:
output.document.write(desc[itemp].bold() +"<br>" + links[itemp].link(links[itemp])+"<br>");

Any help would be appreciated

boils down to using the Javascript link() method to target="_parent"

so did target="_parent" work for you? Otherwise I would use target="_new window"