• Hallo Besucher!

    Du bist neu im Forum? Dann registriere dich hier, um Diskussionen beizutreten oder eigene Themen zu erstellen. Für die Registrierung ist es erforderlich, dass du einen Spielaccount bei Die Stämme hast.

    Andernfalls kannst du dich hier direkt einloggen.

    Falls du dein Passwort vergessen hast, kannst du hier ein neues Passwort anfordern.

[Veraltet] Drop-Down-Liste in der Schnellleiste?

DeletedUser

Gast
JavaScript... Java... Woher kommt diese Namensaehnlichkeit?
Tja, es war einmal... Netscape, die haben etwas tolles Namens LifeScript entwickelt... Und zur selben Zeit kam eine neue Programmiersprache, genannt Java... Viele viele Menschen moechten Java, also dachte sich Netscape: "Hey, warum nennen wir LifeScript nicht in JavaScript um, dann wirds vll auch so beliebt" - und genau das taten sie dann auch. OMG, faszinierend... aber wahr.
 

DeletedUser29187

Gast
ICh hoffe man hört dietage mal wieder was bzw mal wenigstens ne 0.1 version also ne beta version bringt. wir warten jetzt alle schon solange =/ mal schauen wenn in 1-2 wochen immer noch keine antwort eingetroffen ist vllt werde ich dann selbst sowas scripten....aber erstmal abwarten


LG
 

DeletedUser

Gast
mal schauen wenn in 1-2 wochen immer noch keine antwort eingetroffen ist vllt werde ich dann selbst sowas scripten....


lol...
Wenn Du sowas scripten kannst, warum machste es dann nicht einfach...
Das dauert (mit dem nötigen Wissen) ja wahrscheinlich nicht länger als 1-2 Stunden...
 

DeletedUser61033

Gast
was is jetzt TrUnKsMaReK?
jetzt sinds 4 Wochen :mrgreen:


naja, ich hab mich mal drangesetzt und n bissal was gescriptet...
funzt auch schon ganz gut, die Links lassen sich alle aufrufen

aber jetzt mein Problem:
es soll ja vorkommen, dass Leute Scripte in die SL einbauen :cool: und jetzt weiß ich nich, wie ich es schaffe, diesen beim auswählen der entsprechenden Option auszuführen o_O
 

DeletedUser

Gast
wenn man sich mal den HTML code der schnellleiste anguckt ist es mit href ich hab da mal nen Beispiel gemacht und das hat auch nich funktioniert
 

DeletedUser61033

Gast
ich hab ein Auswahlfeld, bei dem ich für jede Option das Ziel des ursprünglichen Links im "value" mitliefere...
ich könnte höchstens bei auswahl des SL-Scripts einen linkerzeugen, auf den dann der User draufdrücken müsste, um das Script laufen zu lassen... was aber schon ziemlich besch**eiden is
 

DeletedUser

Gast
ich hab da grade eine warscheinlich ziehmlich leichte idee für ein Script
wie wäre es wenn jemand ein Greasemonkeyscript scriptet wo mit man mit nem Buton die schnellleiste ein und ausblenden kann
 

DeletedUser

Gast
Also, kann des dann eigentlich mal einer scripten? Also, des mit der Drop-Down-Liste... Wäre halt schon sehr praktisch...
 

DeletedUser

Gast
Also, kann des dann eigentlich mal einer scripten? Also, des mit der Drop-Down-Liste... Wäre halt schon sehr praktisch...
Hab mal einen Ansatz geschrieben (in 5 Minuten, also Fehler sind sicher drin^^), kanns nicht testen weil ich kein Premium habe, aber ein Kumpel hat gesagt mit Opera 9.5 gehts.
Code:
// ==UserScript==
// @name           Dropdown Schnellleiset
// @namespace      c1b1.de
// @include        http://*.die-staemme.de/*
// ==/UserScript==
// Version 1.0

(
function ()
  {
  if( document . getElementsByTagName ( 'ul' ) [ 0 ] )
    {
    // quick bar element
    var ul = document . getElementsByTagName ( 'ul' ) [ 0 ] ;

    // create select element
    var myElement = document . createElement ( 'select' ) ;
    var select = ul . appendChild (myElement) ;
    select . setAttribute ( 'id' , 'dropdo' , 0 ) ;
    addEvent ( select , 'change' , function ( )
      {
      window . location . href = this . document . getElementsByTagName ( 'option' ) [ this . selectedIndex ] . value ;
      } );

    // data
    data = new Array ( ) ;

    data [ 0 ] = new Array ( ) ;
    data [ 0 ] [ 0 ] = 'Google' ;
    data [ 0 ] [ 1 ] = 'http://google.de' ;

    data [ 1 ] = new Array ( );
    data [ 1 ] [ 0 ] = 'c1b1';
    data [ 1 ] [ 1 ] = 'http://c1b1.de';

    data [ 2 ] = new Array ( ) ;
    data [ 2 ] [ 0 ] = 'DS' ;
    data [ 2 ] [ 1 ] = 'http://die-staemme.de' ;

     //dump2D ( data ) ;

    // insert option elements
    op = new Array () ;
    for ( var i = 0 ; i < data . length ; i++ )
      {
      var myElement = document . createElement ( 'option' ) ;
      op [ i ] = select . appendChild ( myElement ) ;
      op [ i ] . setAttribute ( 'value' , data [ i ] [ 1 ] , 0 ) ;
      op [ i ] . innerHTML = data [ i ] [ 0 ] ;
      }
    }
  }

)()


// Flexible Javascript Events by John Resig (ejohn.org)
// http://ejohn.org/projects/flexible-javascript-events/
function addEvent( obj, type, fn ) {
  if ( obj.attachEvent ) {
    obj['e'+type+fn] = fn;
    obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
    obj.attachEvent( 'on'+type, obj[type+fn] );
  } else
    obj.addEventListener( type, fn, false );
}

  function dump2D(array)
   {
   document.write('<table border="1">');
   document.write('<tr>');
   document.write('<th colspan="2">Array</th>');
   document.write('</tr>');
   var row;
   for(var row=0;row<array.length;++row)
     {
     document.writeln('<tr>');
     for(var col=0;col<array[row].length;++col)
       document.writeln('<td>'+array[row][col]+'</td>');
     document.writeln('</tr>');
     }
   document.writeln('</table><br />');
   }
 
Zuletzt bearbeitet von einem Moderator:

DeletedUser

Gast
Wird angezeigt.. aber wie führe ich die links aus.. wähle halt beispiel ds aus.. klicke drauf. nichts...

hilfe?! xD
 

DeletedUser61033

Gast
hm, wie gesagt: meins würde ja funktionieren, bis auf die js-codes... und das problem hast du ja auch nich gelöst c1b1se...
 

DeletedUser

Gast
hm, wie gesagt: meins würde ja funktionieren, bis auf die js-codes... und das problem hast du ja auch nich gelöst c1b1se...
Müsste damit gelöst sein:
Code:
// ==UserScript==
// @name           Dropdown Schnellleiset
// @namespace      c1b1.de
// @include        http://de27.die-staemme.de/*
// ==/UserScript==

// Version 1.1
/*
Changelog:
  - Javascript code can be attached as a link (in theory)

*/

(
function ()
  {
  if( document . getElementsByTagName ( 'ul' ) [ 0 ] )
    {
    // quick bar element
    var ul = document . getElementsByTagName ( 'ul' ) [ 0 ] ;

    // create select element
    var myElement = document . createElement ( 'select' ) ;
    var select = ul . appendChild (myElement) ;
    select . setAttribute ( 'id' , 'dropdo' , 0 ) ;
    addEvent ( select , 'change' , function ( )
      {
      var value =  this . document . getElementsByTagName ( 'option' ) [ this . selectedIndex ] . value ;
      if ( value . substr ( 0 , 11 ) == 'javascript:' )
        eval ( value . substr ( 11 ) ) ;
      else
        window . location . href = value ;
      } );

    // data
    data = new Array ( ) ;

    data [ 0 ] = new Array ( ) ;
    data [ 0 ] [ 0 ] = 'Google' ;
    data [ 0 ] [ 1 ] = 'http://google.de' ;

    data [ 1 ] = new Array ( );
    data [ 1 ] [ 0 ] = 'c1b1';
    data [ 1 ] [ 1 ] = 'http://c1b1.de';

    data [ 2 ] = new Array ( ) ;
    data [ 2 ] [ 0 ] = 'DS' ;
    data [ 2 ] [ 1 ] = 'http://die-staemme.de' ;

    data [ 3 ] = new Array ( ) ;
    data [ 3 ] [ 0 ] = 'Alert' ;
    data [ 3 ] [ 1 ] = "javascript:alert('--> Hallo Welt <--');" ;


     //dump2D ( data ) ;

    // insert option elements
    op = new Array () ;
    for ( var i = 0 ; i < data . length ; i++ )
      {
      var myElement = document . createElement ( 'option' ) ;
      op [ i ] = select . appendChild ( myElement ) ;
      op [ i ] . setAttribute ( 'value' , data [ i ] [ 1 ] , 0 ) ;
      op [ i ] . innerHTML = data [ i ] [ 0 ] ;
      }
    }
  }

)()


// Flexible Javascript Events by John Resig (ejohn.org)
// http://ejohn.org/projects/flexible-javascript-events/
function addEvent( obj, type, fn ) {
  if ( obj.attachEvent ) {
    obj['e'+type+fn] = fn;
    obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
    obj.attachEvent( 'on'+type, obj[type+fn] );
  } else
    obj.addEventListener( type, fn, false );
}
 

DeletedUser61033

Gast
1) funzt ned
2) lass mal das ganze drum-rum weg und zeig mir mal nur den Code, wie du den Code ausführen würdest, hab jetzt keine Lust mich da durchzulesen^^
 

DeletedUser

Gast
1) funzt ned
2) lass mal das ganze drum-rum weg und zeig mir mal nur den Code, wie du den Code ausführen würdest, hab jetzt keine Lust mich da durchzulesen^^
eval ( string ) ;
Führt normalerweise den Javascript Code, der als String übergeben wird, aus. Jedenfalls geht, dass bei Opera. Vielleicht ist ein Fehler in dem Script, weiß ich nicht, wie gesagt, kann nicht testen.
 
Oben