Zum Inhalt springen

Javascript Bug in Powermail

Erstellt am 13. Juni 2008 · 10 Antworten · letzte Antwort am 21. August 2008

Tags: Frage

Desmond ·

Hallo zusammen

Ich habe bei einer TYPO3-Website einen Javascript Bug in der Powermail Extension. Das Formular funktioniert zwar, aber ich habe noch anderen JS-Code auf der Seite, welcher nicht funktioniert, da der Firefox alles JS Zeugs abbricht.

Im Firebug kommt diese Meldung: expression.strip is not a function

Das ganze ist irgend bei Zeile 1765 im File prototype.js Der Abschnitt sieht so aus:

Object.extend(Selector, {
  matchElements: function(elements, expression) {
    var selector = new Selector(expression);
    return elements.select(selector.match.bind(selector)).map(Element.extend);
  },

  findElement: function(elements, expression, index) {
    if (typeof expression == 'number') index = expression, expression = false;
    return Selector.matchElements(elements, expression || '*')[index || 0];
  },

  findChildElements: function(element, expressions) {
    return expressions.map(function(expression) {
      return expression.strip().split(/\s+/).inject([null], function(results, expr) {
        var selector = new Selector(expr);
        return results.inject([], function(elements, result) {
          return elements.concat(selector.findElements(result || element));
        });
      });
    }).flatten();
  }
});

Hat jemand das gleiche Problem und noch besser eine Lösung?

Desmond ·

Hat sonst niemand das Problem?

Übrigens habe ich TYPO3 4.2 und Powermail Version 1.3.5 (die neuste, der Fehler war aber auch schon bei 1.3.4)

einpraegsam.​net ·
Desmond schrieb

Hat sonst niemand das Problem?

Übrigens habe ich TYPO3 4.2 und Powermail Version 1.3.5 (die neuste, der Fehler war aber auch schon bei 1.3.4)

Der Fehler wird vermutlich auch schon bei 0.1.0 gewesen sein, weil Powermail die prototype.js nutzt...

Eventuell mal eine neue Version (von Prototype) einsetzen und testen...

Desmond ·

Danke einpraegsam

Abwechslung macht bekantllich das Leben spannend. Der Fehler auf Zeile 1765 ist verschwunden... jetzt kommt einer auf Zeile 699. Firebug meldet: iterator has no properties

Die Funktion dazu:

inject: function(memo, iterator, context) {
    iterator = iterator.bind(context);
    this.each(function(value, index) {
      memo = iterator(memo, value, index);
    });
    return memo;
  },

Habe prototype.js von 1.5.0_rc2 auf 1.6.0.2 aktualisiert.

Desmond ·

Ich schiebe das mal hoch... habe jetzt mal die powermail Extension updated (1.3.11). Aber der Fehler ist immer noch der selbe. Hat jemand eine Idee?

Desmond ·

Powermail funktioniert... aber ich habe noch so ein mootoools Kasten auf der Seite, welcher eigentlich auf- un dzufahren sollte. Diese macht er im Firefox aber nicht. Der hört auf zu rechnen wenn ein JavaScript Fehler auftritt.

digedag ·

Du kannst Mootools und Prototype nicht parallel auf einer Seite einsetzen. Die Bibliotheken kommen sich gegenseitig in die Quere!

nobbie ·

Hallo,

ich benutze Powermail und Smoothgallery (mootools.js) auf einer Seite ohne Störungen.

Schau mal dieses Posting an:

#80291

Powermail nutzt Prototype zur JS Formvalidation - dieses JS, kann man über die Constants ausschalten, wenn man es nicht braucht (dann gibts aber keine JS Valitation mehr)

Musste aber zusätzlich noch "Check for mandatory fields" deaktivieren.

Auf die E-Mail Validierung kann man verzichten.

Siehe: http://www.ssv-schwaebischhall.de/verein.html

nobbie

Desmond ·

Danke für die Hilfe. Im Moment ist jedoch die Form Validierung wichtiger als so ein Feld das auf und zu "mootooleret".