franek: Sidebar – Mainfenster per JS steueren

hallo,

ich baue mir gerade eine kleine navigation, welche nicht in frames laufen soll, sondern über die sidebar.

damit kann ich pronlemlos frameblocker umgehen und kann mir die navi (z.bsp) im opera bequem ein-ausschalten.

da ich auf vielen kunden seiten php-laufen habe, mit oft fortlaufenden ids, und ich daher oft in die adressleiste springen muss um aus einer 3 eine 4 zu machen etc. deshalb habe ich mir ein kleines js geschrieben, welches einen statischen bereich besitz und einen dynamischen, hier werden die zahlen einfach um eins erhöht/vermindert.

das problem besteht darin, per parent.frame[1].location.href = name.htm

auf das _main fenster des ie, respektive content fenster des opera zuzugreifen.

hier ertsmal der quick and dirty code:
_________________________________________________
<script type="text/javascript">
<!--
function dynurl(starturl,dynpart,endurl,param)
{
        if(param == 1)
        {dynpart++; }
         else
         {dynpart--;}
        var newurl = starturl + dynpart + endurl;
        document.form.dynpart.value = dynpart;
        document.form.kontrolle.value = newurl;
        parent.frame[1].location.href = newurl;
}
</script>

<form name="form" action="">
<input type="text" name="starturl" size="30"><br> <input type="text" name="dynpart" size="5"> <input type="text" name="endurl" size="15">
<br>
<input type="button" value="zurück" onClick="dynurl(document.form.starturl.value,document.form.dynpart.value,document.form.endurl.value,-1)">
<input type="button" value="weiter" onClick="dynurl(document.form.starturl.value,document.form.dynpart.value,document.form.endurl.value,+1)">
<br>
<input type="text" value="0" readonly size="30" name="kontrolle">
<br>
<br>
<a href="javascript:void(_search=open('sideswitcher03.html','_search'))" class="dezent">als Sidebar</a>
_________________________________________________

weiß jemand wie die korrekte beziechnung für den main frame auszusehen hat?

schonmal danke für eure postings.
franek

  1. Hallo, franek!

    parent.frame[1].location.href = newurl;

    frames.length ist gleich 0.

    weiß jemand wie die korrekte beziechnung für den main frame auszusehen hat?

    meine versuche waren alle erfolglos.
    zwischen den beiden fenstern/frames (?) ist es zumindest im IE anscheinend nicht möglich, mit javascript zu agieren.

    freundl. Grüsse aus Berlin, Raik

    --
    die Schläge, die Du bereitwillig hinnimmst, werden Dir eine größere Hilfe im Leben sein, als die, die Du für ungerechtfertigt ablehnst; denn einestages wirst auch Du die Fürsorge und Hilfe darin erkennen.
    (c)XaraX http://forum.de.selfhtml.org/archiv/2004/4/77523/#m447546
  2. hallo frank

    if(param == 1)
            {dynpart++; }
             else
             {dynpart--;}

    zuerstmal kannst du deine if-else abfrage weglassen und stattdessen
    den param und dynpart als zahl behandeln, dies erreichst du indem du mit number arbeitest:
    dynpart = Number(dynpart) + Number(param);
    hierbei wird nun einfach mit dem übergebenen wert gerechnet.

    parent.frames[1].location.href = newurl;

    für das problem der sidebar per js habe ich auch keine direkte lösung,
    aber vielleicht kannst du ja die buttons weglassen und den aufruf der funktion per link durchführen, hierbei wäre der vorteil eines direkt anwendbaren target-attributes:

    <a href="javascript:void()" onClick="dynurl(document.form.starturl.value,document.form.dynpart.value,document.form.endurl.value,1)" target="_main">+1 Seite</a>

    grüße, sebastian

    1. hallo sebastian,

      danke für die antwort,
      jetzt funktioniert es einwandfrei.

      grüße, franek

      hallo frank

      if(param == 1)
              {dynpart++; }
               else
               {dynpart--;}

      zuerstmal kannst du deine if-else abfrage weglassen und stattdessen
      den param und dynpart als zahl behandeln, dies erreichst du indem du mit number arbeitest:
      dynpart = Number(dynpart) + Number(param);
      hierbei wird nun einfach mit dem übergebenen wert gerechnet.

      parent.frames[1].location.href = newurl;

      für das problem der sidebar per js habe ich auch keine direkte lösung,
      aber vielleicht kannst du ja die buttons weglassen und den aufruf der funktion per link durchführen, hierbei wäre der vorteil eines direkt anwendbaren target-attributes:

      <a href="javascript:void()" onClick="dynurl(document.form.starturl.value,document.form.dynpart.value,document.form.endurl.value,1)" target="_main">+1 Seite</a>

      grüße, sebastian