max xam: prototype: $$() in anderem window anwenden

hallo und guten morgen,
ich würde gerne die $$() funktion
innerhalb eines anderen frames anwenden.

leider gibts es ja nicht die möglichkeit
der funktion $$() das zu verwendende document
zu übergeben, daher frage ich mich wie das funktioniert?

bisher habe ich nur folgende variante gefunden

new Selector('#inj').findElements(top.document);

funktioniert das auch "weniger umständlich",
prototype ist in dem anderen frame ja ebenfalls vorhanden!!!!

danke schonmal

  1. windowFoo.Element.select(, "#injun");

    schein wohl eine weitere möglichkeit zu sein,
    danke trotzdem schonmal für weitere
    vorschläge

    1. bei beiden varianten kann ich nicht auf
      .innerHTML zugreifen, bzw. es erscheint als "undefined"

      ... bin am verzweifeln :/

  2. leider gibts es ja nicht die möglichkeit
    der funktion $$() das zu verwendende document
    zu übergeben, daher frage ich mich wie das funktioniert?

    $$ ist eine Funktion beim globalen window-Objekt (angenommen, in dem anderen Frame ist auch Prototype eingebunden, was du ja sagst). Du brauchst also nur auf das window-Objekt des Frames zugreifen, darüber kannst du dann $$ ansprechen.

    Wenn du bspw. ein Frameset mit zwei Frames hast a und b, dann kannst du aus dem Dokument in Frame a über parent.b auf das window-Objekt des anderen Frames zugreifen. Also parent.b.$$.

    Sämtliche Zugriffsarten sind hier erklärt:
    http://de.selfhtml.org/javascript/objekte/frames.htm
    http://aktuell.de.selfhtml.org/artikel/javascript/fensterzugriff/

    Mathias

    1. gibts ja nicht :D

      top.$$('#test').innerHTML;

      funktioniert tatsächlich,
      ich könnte schwören das hab ich als erstes versucht,
      naja war wohl die umnächtigung!

      danke dir für den tip, das hätte ich wohl nicht
      nochmal versucht, muss mich da wohl iwo vertippt haben.

      gruß!

  3. funktioniert leider doch nicht so ganz.
    ff kommt damit zwar zurecht aber opera sagt:

    var test1 = parent.(window.$$ || functi
    -------------------^
    expected identifier, got '('

    parent.select() funktioniert leider auch nicht
    ebensowenig $(parent).select

    es kommt beide male: ... is not a function

    1. top.$$ gibt zurück: "function"

      aber...

      top.$$('test') gibt zurück:

      Syntax error at line 1 :
      top.(window.$$ || functi
      ----^
      expected identifier, got '('

      jedoch nur in opera!

    2. var test1 = parent.(window.$$ || functi
      -------------------^
      expected identifier, got '('

      Kannst du mal bitte zumindest die gesamte Codezeile posten und erklären, in welchem Frame sie ausgeführt wird und was sie tun soll?

      Folgendes ginge z.B.
      parent.$('id').select('.class')
      Keine Ahnung, ob du das nun suchst. Bitte beschreibe einmal genau dein Frames-Setup und aus welchem Frame du in welchem Frame was mit Prototype machen willst.

      Mathias

      1. das IST die komplette zeile, mehr gibt opera nicht aus.
        aber mittlerweile konnte ich mir selbst helfen:

        (top.$$)('bla');

        einfach den ersten teil in klammern setzen!

    3. ich meinte natürlich

      (top.$).('bla');

      1. mein fehler, das erste war doch richtig!