javascript: open a new window in my frame, HELP!?

Discussion in 'JavaScript' started by mportman300, Aug 15, 2007.

  1. #1
    have been doing html, css, javascript squarely over 2 years... and am now doing a family project.. in my project i have decided to use a context menu script, its a menu that pretty much allows for when you right click on a page it shows you different links that the standard right click menu, link here:
    http://www.dynamicdrive.com/dynamici...ontextmenu.htm
    What it does exactly is opens a new window with the link that you have chosen, on the link that i have given above the demo is in the page, right click anywehre, and you'll see... now.. like is said it opens with a right click,... the problem that i am having is that when a window opens...it opens in a new window... i want it to open in one of my frames, here is the code snippet:(please notice that this is all internal javascript, therefore it is in the body of the site)

    <div id="ie5menu" class="skin0" onMouseover="highlightie5(event)" onMouseout="lowlightie5(event)" onClick="jumptoie5(event)" display:none>
    <div class="menuitems" url="http://dynamicdrive.com">Dynamicdrive.com</div>
    <div class="menuitems" url="http://dynamicdrive.com/new.htm" target="newwin">What's New?</div>
    <div class="menuitems" url="http://dynamicdrive.com/hot.htm">What's Hot?</div>
    <div class="menuitems" url="http://wsabstract.com/cgi-bin/Ultimate.cgi">Message Forum</div>
    <div class="menuitems" url="http://dynamicdrive.com/faqs.htm">FAQs</div>
    <div class="menuitems" url="http://dynamicdrive.com/submitscript.htm">Submit</div>
    <hr>
    <div class="menuitems" url="mailto:dynamicdrive@yahoo.com">Email Us</div>
    </div>

    <script language="JavaScript1.2">

    //set this variable to 1 if you wish the URLs of the highlighted menu to be displayed in the status bar
    var display_url=0

    var ie5=document.all&&document.getElementById
    var ns6=document.getElementById&&!document.all
    if (ie5||ns6)
    var menuobj=document.getElementById("ie5menu")

    function showmenuie5(e){
    //Find out how close the mouse is to the corner of the window
    var rightedge=ie5? document.body.clientWidth-event.clientX : window.innerWidth-e.clientX
    var bottomedge=ie5? document.body.clientHeight-event.clientY : window.innerHeight-e.clientY

    //if the horizontal distance isn't enough to accomodate the width of the context menu
    if (rightedge<menuobj.offsetWidth)
    //move the horizontal position of the menu to the left by it's width
    menuobj.style.left=ie5? document.body.scrollLeft+event.clientX-menuobj.offsetWidth : window.pageXOffset+e.clientX-menuobj.offsetWidth
    else
    //position the horizontal position of the menu where the mouse was clicked
    menuobj.style.left=ie5? document.body.scrollLeft+event.clientX : window.pageXOffset+e.clientX

    //same concept with the vertical position
    if (bottomedge<menuobj.offsetHeight)
    menuobj.style.top=ie5? document.body.scrollTop+event.clientY-menuobj.offsetHeight : window.pageYOffset+e.clientY-menuobj.offsetHeight
    else
    menuobj.style.top=ie5? document.body.scrollTop+event.clientY : window.pageYOffset+e.clientY

    menuobj.style.visibility="visible"
    return false
    }

    function hidemenuie5(e){
    menuobj.style.visibility="hidden"
    }

    function highlightie5(e){
    var firingobj=ie5? event.srcElement : e.target
    if (firingobj.className=="menuitems"||ns6&&firingobj.parentNode.className=="menuitems"){
    if (ns6&&firingobj.parentNode.className=="menuitems") firingobj=firingobj.parentNode //up one node
    firingobj.style.backgroundColor="highlight"
    firingobj.style.color="white"
    if (display_url==1)
    window.status=event.srcElement.url
    }
    }

    function lowlightie5(e){
    var firingobj=ie5? event.srcElement : e.target
    if (firingobj.className=="menuitems"||ns6&&firingobj.parentNode.className=="menuitems"){
    if (ns6&&firingobj.parentNode.className=="menuitems") firingobj=firingobj.parentNode //up one node
    firingobj.style.backgroundColor=""
    firingobj.style.color="black"
    window.status=''
    }
    }

    function jumptoie5(e){
    var firingobj=ie5? event.srcElement : e.target
    if (firingobj.className=="menuitems"||ns6&&firingobj.parentNode.className=="menuitems"){
    if (ns6&&firingobj.parentNode.className=="menuitems") firingobj=firingobj.parentNode
    if (firingobj.getAttribute("target"))
    window.open(firingobj.getAttribute("url"),firingobj.getAttribute("target"))
    else
    window.location=firingobj.getAttribute("url")
    }
    }

    if (ie5||ns6){
    menuobj.style.display=''
    document.oncontextmenu=showmenuie5
    document.onclick=hidemenuie5
    }

    </script>


    i've figured out its this part thats responsible for the function of a new window... im using FRAMES, not IFRAMES...


    function jumptoie5(e){
    var firingobj=ie5? event.srcElement : e.target
    if (firingobj.className=="menuitems"||ns6&&firingobj.parentNode.className=="menuitems"){
    if (ns6&&firingobj.parentNode.className=="menuitems") firingobj=firingobj.parentNode
    if (firingobj.getAttribute("target"))
    window.open(firingobj.getAttribute("url"),firingobj.getAttribute("target"))
    else
    window.location=firingobj.getAttribute("url")
    }
    }

    i've changed the last line (window.location=firingobj.getAttribute("url")
    to the following:

    document.getElementById("kirupa").src=firingobj.getAttribute("url");
    kirupa.location=firingobj.getAttribute("url")
    Kirupa.document.location=firingobj.getAttribute("url")
    document.frames[kirupa].location=firingobj.getAttribute("url")
    document.frames["kirupa"].location=firingobj.getAttribute("url")

    ...nothing works.. help?
     
    mportman300, Aug 15, 2007 IP