Results 1 to 5 of 5

Thread: context menu script help, PLEASE HELP ME!

  1. #1
    Join Date
    Aug 2007
    Posts
    3
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default context menu script help, PLEASE HELP ME!

    Have pity on me.. i 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: (thats the original that i didnt change )

    <div id="ie5menu" class="skin0" onMouseover="highlightie5(event)" onMouseout="lowlightie5(event)" onClick="jumptoie5(event)" display:none>
    <div class="menuitems" href="http://www.google.com">google</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>

    (main is the name of one of the frames that i am using)
    i change the <div class="menuitems url="http://www.google.com">google</div>(which works by the way) to
    <div class="menuitems url="http://www.google.com" target="main">google</div> (main is a legit name of one of my frames) however that doesnt seem to work the window still launches in a new window. i have even tried to delete the whole <div> </div> and replace it all with <a href="http://www.google.com" target="main">gogle</a> but that just breaks the menu altogether,...

    one person on a html forum told me that the problem is not in my html code... but in the operating javascript... the menu is not running an external javascript code, however there is an internal javascript functions, but i dont know how to change it to open in a frame, i am posting the body of the document below:


    <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>

    Im guessing it has something to do with the Jumptoie(5) but i dont know how to change it.. please someone help, with all regards, MPortman300, Please professionals.. have pity

  2. #2
    Join Date
    Mar 2005
    Location
    SE PA USA
    Posts
    29,069
    Thanks
    44
    Thanked 3,216 Times in 3,178 Posts
    Blog Entries
    12

    Default

    I do pity you. Trying to co-opt the context menu is no longer a viable option in most modern browsers.
    - John
    ________________________

    Show Additional Thanks: International Rescue Committee - Donate or: The Ocean Conservancy - Donate or: PayPal - Donate

  3. #3
    Join Date
    Aug 2007
    Posts
    3
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    aww cmon helppp

  4. #4
    Join Date
    Aug 2007
    Posts
    3
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    so noone gonna help me =(? lol

  5. #5
    Join Date
    Oct 2007
    Posts
    1
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Beware of the Context Menu

    That's a script that will take your time and you'll have nothing to show for it except a gimpy piece of nothing.

    Good luck

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •