prototype: $$() in anderem window anwenden
max xam
- javascript
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
windowFoo.Element.select(, "#injun");
schein wohl eine weitere möglichkeit zu sein,
danke trotzdem schonmal für weitere
vorschläge
bei beiden varianten kann ich nicht auf
.innerHTML zugreifen, bzw. es erscheint als "undefined"
... bin am verzweifeln :/
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
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ß!
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
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!
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
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!
ich meinte natürlich
(top.$).('bla');
mein fehler, das erste war doch richtig!