im Opera ist ein Absenden nach Vorschau nicht möglich....

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Oggy1
Mitglied
Beiträge: 99
Registriert: 28.10.2007 22:05
Kontaktdaten:

im Opera ist ein Absenden nach Vorschau nicht möglich....

Beitrag von Oggy1 »

Hallo,
wenn ich im Forum Beiträge erstelle und dann auf die Vorschau gehe, kann ich diesen Beitrag dann nicht absenden, ich muss dann erst auf zurück und dann geht es.
Dies ist jedoch nur im Opera der Fall, mit dem IE8, FireFox oder Safari gibt es jedoch keine Probleme und mit dem Opera ging es auch mal, da bin ich mir ganz sicher, jedoch habe ich keine Ahnung ab welchen MOD dies so ist, ich bin auch nicht der einzige wo dies so ist.
Der IE8 zeigt unten in der Leiste einen Fehler an...

Code: Alles auswählen

Details zum Fehler auf der Webseite

Benutzer-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
Zeitstempel: Wed, 26 May 2010 17:44:19 UTC


Meldung: Ungültiges Argument.
Zeile: 585
Zeichen: 17
Code: 0
URI: http://www.sfa-forum.de/spell/AJS.js



und nun weiss ich nicht ob es vielleicht daran liegt, dass ändern der Datei oder umbenennen führt nur zu weiteren Fehlermeldungen.

Hat einer einen Tipp??
cu Oggy1
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: im Opera ist ein Absenden nach Vorschau nicht möglich...

Beitrag von BNa »

Code: Alles auswählen

Meldung: Ungültiges Argument.
Zeile: 585
Zeichen: 17
Code: 0
URI: http://www.sfa-forum.de/spell/AJS.js
Wird wohl die AJS.js der Spell-Check Mod sein, die nicht mit der neuen IE-/Opera-Engine kompatibel ist oder Du hast einen Einbaufehler gemacht. Was steht denn im geparsten Quelltext in Zeile: 585? Das hast Du uns hier nicht verraten :-?
Oggy1
Mitglied
Beiträge: 99
Registriert: 28.10.2007 22:05
Kontaktdaten:

Re: im Opera ist ein Absenden nach Vorschau nicht möglich...

Beitrag von Oggy1 »

Hallo,
in der Zeile: 585 steht dies....

Code: Alles auswählen

                elm.style[property] = value;
und hier der ganze Code

Code: Alles auswählen

/*
Last Modified: 02/03/09 20:10:29

AJS JavaScript library
    A very small library with a lot of functionality
AUTHOR
    4mir Salihefendic (http://amix.dk) - amix@amix.dk
LICENSE
    Copyright (c) 2006 amix. All rights reserved.
    Copyright (c) 2005 Bob Ippolito. All rights reserved.
    http://www.opensource.org/licenses/mit-license.php
VERSION
    4.31
SITE
    http://orangoo.com/AmiNation/AJS
**/
if(!window.AJS) {
var AJS = {
    BASE_URL: "",
    ajaxErrorHandler: null,

////
// General accessor functions
////
    getQueryArgument: function(var_name) {
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        for (var i=0;i<vars.length;i++) {
            var pair = vars[i].split("=");
            if (pair[0] == var_name) {
                return pair[1];
            }
        }
        return null;
    },

    _agent: navigator.userAgent.toLowerCase(),
    _agent_version: navigator.productSub,

    isIe: function() {
        return (AJS._agent.indexOf("msie") != -1 && AJS._agent.indexOf("opera") == -1);
    },
    isIe8: function() {
        return AJS._agent.indexOf("msie 8") != -1;
    },
    isSafari: function(all) {
        if(all)
            return AJS._agent.indexOf("khtml");

        return (AJS._agent.indexOf("khtml") != -1 &&
                AJS._agent.match(/3\.\d\.\d safari/) == null);
    },
    isOpera: function() {
        return AJS._agent.indexOf("opera") != -1;
    },
    isMozilla: function() {
        return (AJS._agent.indexOf("gecko") != -1 && AJS._agent_version >= 20030210);
    },
    isMac: function() {
        return (AJS._agent.indexOf('macintosh') != -1);
    },
    isCamino: function() {
        return (AJS._agent.indexOf("camino") != -1);
    },


////
// Array functions
////
    //Shortcut: AJS.$A
    createArray: function(v) {
        if(AJS.isArray(v) && !AJS.isString(v))
            return v;
        else if(!v)
            return [];
        else
            return [v];
    },

    forceArray: function(args) {
        var r = [];
        for(var i = 0; i < args.length; i++)
            r.push(args[i]);
        return r;
    },

    join: function(delim, list) {
        try {
            return list.join(delim);
        }
        catch(e) {
            var r = list[0] || '';
            AJS.map(list, function(elm) {
                r += delim + elm;
            }, 1);
            return r + '';
        }
    },

    isIn: function(elm, list) {
        var i = AJS.getIndex(elm, list);
        if(i != -1)
            return true;
        else
            return false;
    },

    getIndex: function(elm, list/*optional*/, eval_fn) {
        for(var i=0; i < list.length; i++)
            if(eval_fn && eval_fn(list[i]) || elm == list[i])
                return i;
        return -1;
    },

    getFirst: function(list) {
        if(list.length > 0)
            return list[0];
        else
            return null;
    },

    getLast: function(list) {
        if(list.length > 0)
            return list[list.length-1];
        else
            return null;
    },

    getRandom: function(list) {
        return list[Math.floor(Math.random()*list.length)];
    },

    update: function(l1, l2) {
        for(var i in l2)
            l1[i] = l2[i];
        return l1;
    },

    flattenList: function(list) {
        var has_list = false;
        var new_list = [];

        for(var i=0; i < list.length; i++) {
            var elm = list[i];
            if(AJS.isArray(elm)) {
                has_list = true;
                break;
            }

            if(elm != null)
                new_list.push(elm);
        }

        if(!has_list)
            return new_list;

        var r = [];
        var _flatten = function(r, l) {
            AJS.map(l, function(o) {
                if(o == null) {
                }
                else if (AJS.isArray(o))
                    _flatten(r, o);
                else
                    r.push(o);
            });
        }
        _flatten(r, list);
        return r;
    },

    //[[elm1, ..., elmN], valX] -> [elm1, ..., elmN, valX]
    flattenElmArguments: function(args) {
        return AJS.flattenList(AJS.forceArray(args));
    },


////
// Functional programming
////
    map: function(list, fn,/*optional*/ start_index, end_index) {
        var i = 0, l = list.length;
        if(start_index)
             i = start_index;
        if(end_index)
             l = end_index;
        for(i; i < l; i++) {
            var val = fn(list[i], i);
            if(val != undefined)
                return val;
        }
    },

    rmap: function(list, fn) {
        var i = list.length-1, l = 0;
        for(i; i >= l; i--) {
            var val = fn.apply(null, [list[i], i]);
            if(val != undefined)
                return val;
        }
    },

    filter: function(list, fn, /*optional*/ start_index, end_index) {
        var r = [];
        AJS.map(list, function(elm) {
            if(fn(elm))
                r.push(elm);
        }, start_index, end_index);
        return r;
    },

    partial: function(fn) {
        var args = AJS.$FA(arguments);
        args.shift();
        return function() {
            args = args.concat(AJS.$FA(arguments));
            return fn.apply(window, args);
        }
    },


////
// DOM functions
////

//--- Accessors ----------------------------------------------
    //Shortcut: AJS.$
    getElement: function(id) {
        if(AJS.isString(id) || AJS.isNumber(id))
            return document.getElementById(id);
        else
            return id;
    },

    //Shortcut: AJS.$$
    getElements: function(/*id1, id2, id3*/) {
        var args = AJS.flattenElmArguments(arguments);
        var elements = new Array();
            for (var i = 0; i < args.length; i++) {
                var element = AJS.getElement(args[i]);
                elements.push(element);
            }
            return elements;
    },

    //Shortcut: AJS.$bytc
    getElementsByTagAndClassName: function(tag_name, class_name, /*optional*/ parent, first_match) {
        var class_elements = [];

        if(!AJS.isDefined(parent))
            parent = document;
        if(!AJS.isDefined(tag_name))
            tag_name = '*';

        var i, j;

        if(class_name && document.getElementsByClassName) {
            var els = parent.getElementsByClassName(class_name);

            if(tag_name == '*') {
                class_elements = AJS.forceArray(els);
            }
            else {
                var els_len = els.length;
                for (i = 0; i < els_len; i++) {
                    if(els[i].nodeName.toLowerCase() == tag_name) {
                        class_elements.push(els[i]);
                    }
                }
            }
        }
        else {
            var els = parent.getElementsByTagName(tag_name);

            if(!class_name) {
                class_elements = AJS.forceArray(els);
            }
            else {
                var els_len = els.length;
                var pattern = new RegExp("(^|\\s)" + class_name + "(\\s|$)");
                for (i = 0; i < els_len; i++) {
                    if (pattern.test(els[i].className) || !class_name) {
                        class_elements.push(els[i]);
                    }
                }
            }
        }

        if(first_match)
            return class_elements[0];
        else
            return class_elements;
    },

    nodeName: function(elm) {
        return elm.nodeName.toLowerCase();
    },

    _nodeWalk: function(elm, tag_name, class_name, fn_next_elm) {
        var p = fn_next_elm(elm);

        var checkFn;
        if(tag_name && class_name) {
            checkFn = function(p) {
                return AJS.nodeName(p) == tag_name && AJS.hasClass(p, class_name);
            }
        }
        else if(tag_name) {
            checkFn = function(p) { return AJS.nodeName(p) == tag_name; }
        }
        else {
            checkFn = function(p) { return AJS.hasClass(p, class_name); }
        }

        if(checkFn(elm))
            return elm;

        while(p) {
            if(checkFn(p))
                return p;
            p = fn_next_elm(p);
        }
        return null;
    },

    //Shortcut: AJS.$gp
    getParentBytc: function(elm, tag_name, class_name) {
        return AJS._nodeWalk(elm, tag_name, class_name, function(m) { if(m) return m.parentNode; });
    },

    //Shortcut: AJS.$gc
    getChildBytc: function(elm, tag_name, class_name) {
        var elms = AJS.$bytc(tag_name, class_name, elm);
        if(elms.length > 0)
            return elms[0];
        else
            return null;
    },

    hasParent: function(elm, parent_to_consider, max_look_up) {
        if(elm == parent_to_consider)
            return true;
        if(max_look_up == 0)
            return false;
        return AJS.hasParent(elm.parentNode, parent_to_consider, max_look_up-1);
    },

    getPreviousSiblingBytc: function(elm, tag_name, class_name) {
        return AJS._nodeWalk(elm, tag_name, class_name, function(m) { return m.previousSibling; });
    },

    getNextSiblingBytc: function(elm, tag_name, class_name) {
        return AJS._nodeWalk(elm, tag_name, class_name, function(m) { return m.nextSibling; });
    },

    getBody: function() {
        return AJS.$bytc('body')[0]
    },


//--- Form related ----------------------------------------------
    //Shortcut: AJS.$f
    getFormElement: function(form, name) {
        form = AJS.$(form);
        var r = null;
        AJS.map(form.elements, function(elm) {
            if(elm.name && elm.name == name)
                r = elm;
        });
        if(r)
            return r;

        AJS.map(AJS.$bytc('select', null, form), function(elm) {
            if(elm.name && elm.name == name)
                r = elm;
        });
        return r;
    },

    getSelectValue: function(select) {
        var select = AJS.$(select);
        return select.options[select.selectedIndex].value;
    },


//--- DOM related ----------------------------------------------
    //Shortcut: AJS.DI
    documentInsert: function(elm) {
        if(typeof(elm) == 'string')
            elm = AJS.HTML2DOM(elm);
        document.write('<span id="dummy_holder"></span>');
        AJS.swapDOM(AJS.$('dummy_holder'), elm);
    },

    //Shortcut: AJS.ACN
    appendChildNodes: function(elm/*, elms...*/) {
        if(arguments.length >= 2) {
            AJS.map(arguments, function(n) {
                if(AJS.isString(n))
                    n = AJS.TN(n);
                if(AJS.isDefined(n))
                    elm.appendChild(n);
            }, 1);
        }
        return elm;
    },

    appendToTop: function(elm/*, elms...*/) {
        var args = AJS.flattenElmArguments(arguments).slice(1);
        if(args.length >= 1) {
            var first_child = elm.firstChild;
            if(first_child) {
                while(true) {
                    var t_elm = args.shift();
                    if(t_elm)
                        AJS.insertBefore(t_elm, first_child);
                    else
                        break;
                }
            }
            else {
                AJS.ACN.apply(null, arguments);
            }
        }
        return elm;
    },

    //Shortcut: AJS.RCN
    replaceChildNodes: function(elm/*, elms...*/) {
        var child;
        while ((child = elm.firstChild))
            AJS.swapDOM(child, null);

        if (arguments.length < 2)
            return elm;
        else
            return AJS.appendChildNodes.apply(null, arguments);
        return elm;
    },

    insertAfter: function(elm, reference_elm) {
        reference_elm.parentNode.insertBefore(elm, reference_elm.nextSibling);
        return elm;
    },

    insertBefore: function(elm, reference_elm) {
        reference_elm.parentNode.insertBefore(elm, reference_elm);
        return elm;
    },

    swapDOM: function(dest, src) {
        dest = AJS.getElement(dest);
        var parent = dest.parentNode;
        if (src) {
            src = AJS.getElement(src);
            parent.replaceChild(src, dest);
        } else {
            parent.removeChild(dest);
        }

        return src;
    },

    removeElement: function(/*elm1, elm2...*/) {
        var args = AJS.flattenElmArguments(arguments);
        try {
            AJS.map(args, function(elm) { 
                if($(elm)) 
                    AJS.swapDOM(elm, null); 
            });
        }
        catch(e) {
        }
    },

    createDOM: function(name, attrs) {
        var i=0, attr;
        var elm = document.createElement(name);

        var first_attr = attrs[0];
        if(AJS.isDict(attrs[i])) {
            for(k in first_attr) {
                attr = first_attr[k];
                if(k == 'style' || k == 's')
                    elm.style.cssText = attr;
                else if(k == 'c' || k == 'class' || k == 'className')
                    elm.className = attr;
                else {
                    elm.setAttribute(k, attr);
                }
            }
            i++;
        }

        if(first_attr == null)
            i = 1;

        for(var j=i; j < attrs.length; j++) {
            var attr = attrs[j];
            if(attr) {
                var type = typeof(attr);
                if(type == 'string' || type == 'number')
                    attr = AJS.TN(attr);
                elm.appendChild(attr);
            }
        }

        return elm;
    },

    _createDomShortcuts: function() {
        var elms = [
                "ul", "li", "td", "tr", "th",
                "tbody", "table", "input", "span", "b",
                "a", "div", "img", "button", "h1",
                "h2", "h3", "h4", "h5", "h6", "br", "textarea", "form",
                "p", "select", "option", "optgroup", "iframe", "script",
                "center", "dl", "dt", "dd", "small",
                "pre", 'i', 'label', 'thead'
        ];
        var extends_ajs = function(elm) {
            AJS[elm.toUpperCase()] = function() {
                return AJS.createDOM.apply(null, [elm, arguments]); 
            };
        }
        AJS.map(elms, extends_ajs);
        AJS.TN = function(text) { return document.createTextNode(text) };
    },
    
    setHTML: function(/*elms..., html*/) {
        var args = AJS.flattenElmArguments(arguments);
        var html = args.pop();
        AJS.map(args, function(elm) { 
            if(elm)
                elm.innerHTML = html;
        });
        return args[0];
    },


//--- CSS related ----------------------------------------------
    //Shortcut: AJS.$sv
    setVisibility: function(/*elms..., val*/) {
        var args = AJS.flattenElmArguments(arguments);
        var val = args.pop() && 'visible' || 'hidden';
        AJS.setStyle(args, 'visibility', val);
    },

    showElement: function(/*elms...*/) {
        AJS.setStyle(AJS.flattenElmArguments(arguments), 'display', '');
    },

    hideElement: function(elm) {
        AJS.setStyle(AJS.flattenElmArguments(arguments), 'display', 'none');
    },

    isElementHidden: function(elm) {
        return ((elm.style.display == "none") || (elm.style.visibility == "hidden"));
    },

    isElementShown: function(elm) {
        return !AJS.isElementHidden(elm);
    },

    setStyle: function(/*elm1, elm2..., {prop: value}*/) {
        var args = AJS.flattenElmArguments(arguments);
        var value = args.pop();
        var num_styles = ['top', 'left', 'right', 'width', 'height'];
        if(AJS.isObject(value)) {
            AJS.map(args, function(elm) { 
                AJS.map(AJS.keys(value), function(prop) {
                    var css_dim = value[prop];
                    if(AJS.isIn(prop, num_styles))
                        css_dim = AJS.isString(css_dim) && css_dim || css_dim + 'px';

                    elm.style[prop] = css_dim;
                });
            });
        }
        else {
            var property = args.pop();
            AJS.map(args, function(elm) { 
                if(AJS.isIn(property, num_styles))
                    value = AJS.isString(value) && value || value + 'px';
                elm.style[property] = value;
            });
        }
    },

    __cssDim: function(args, property) {
        var args = AJS.$FA(args);
        args.splice(args.length-1, 0, property);
        AJS.setStyle.apply(null, args);
    },

    setWidth: function(/*elm1, elm2..., width*/) { 
        return AJS.__cssDim(arguments, 'width');
    },
    setHeight: function(/*elm1, elm2..., height*/) {
        return AJS.__cssDim(arguments, 'height');
    },
    setLeft: function(/*elm1, elm2..., left*/) {
        return AJS.__cssDim(arguments, 'left');
    },
    setRight: function(/*elm1, elm2..., left*/) {
        return AJS.__cssDim(arguments, 'right');
    },
    setTop: function(/*elm1, elm2..., top*/) {
        return AJS.__cssDim(arguments, 'top');
    },

    setClass: function(/*elm1, elm2..., className*/) {
        var args = AJS.flattenElmArguments(arguments);
        var c = args.pop();
        AJS.map(args, function(elm) { elm.className = c});
    },
    addClass: function(/*elm1, elm2..., className*/) {
        var args = AJS.flattenElmArguments(arguments);
        var cls = args.pop();
        var add_class = function(o) {
            if(!new RegExp("(^|\\s)" + cls + "(\\s|$)").test(o.className))
                o.className += (o.className ? " " : "") + cls;
        };
        AJS.map(args, function(elm) { add_class(elm); });
    },
    hasClass: function(elm, cls) {
        if(!elm || !elm.className)
            return false;
        var e_cls = elm.className;
        return (e_cls.length > 0 && (e_cls == cls ||
                new RegExp("(^|\\s)" + cls + "(\\s|$)").test(e_cls)));
    },
    removeClass: function(/*elm1, elm2..., className*/) {
        var args = AJS.flattenElmArguments(arguments);
        var cls = args.pop();
        var rm_class = function(o) {
            o.className = o.className.replace(new RegExp("(^|\\s)" + cls, 'g'), "");
        };
        AJS.map(args, function(elm) { rm_class(elm); });
    },

    setOpacity: function(elm, p) {
        if(p == 1) {
            elm.style.opacity = 1;
            elm.style.filter = "";
        }
        else {
            elm.style.opacity = p;
            elm.style.filter = "alpha(opacity="+ p*100 +")";
        }
    },


//--- Misc ----------------------------------------------
    HTML2DOM: function(html,/*optional*/ first_child) {
        var d = AJS.DIV();
        d.innerHTML = html;
        if(first_child)
            return d.childNodes[0];
        else
            return d;
    },

    preloadImages: function(/*img_src1, ..., img_srcN*/) {
        AJS.AEV(window, 'load', AJS.$p(function(args) {
            AJS.map(args, function(src) {
                var pic = new Image();
                pic.src = src;
            });
        }, arguments));
    },

    RND: function(tmpl, ns, scope) {
         scope = scope || window;
         var fn = function(w, g) {
             g = g.split("|");
             var cnt = ns[g[0]];
             for(var i=1; i < g.length; i++)
                 cnt = scope[g[i]](cnt);
             if(cnt == '')
                 return '';
             if(cnt == 0 || cnt == -1)
                 cnt += '';
             return cnt || w;
         };
         return tmpl.replace(/%\(([A-Za-z0-9_|.]*)\)/g, fn);
    }, 


////
// Ajax functions
////
    getXMLHttpRequest: function() {
        var try_these = [
            function () { return new XMLHttpRequest(); },
            function () { return new ActiveXObject('Msxml2.XMLHTTP'); },
            function () { return new ActiveXObject('Microsoft.XMLHTTP'); },
            function () { return new ActiveXObject('Msxml2.XMLHTTP.4.0'); },
            function () { throw "Browser does not support XMLHttpRequest"; }
        ];
        for (var i = 0; i < try_these.length; i++) {
            var func = try_these[i];
            try {
                return func();
            } catch (e) {
            }
        }
    },

    getRequest: function(url, method) {
        var req = AJS.getXMLHttpRequest();

        if(url.match(/^https?:\/\//) == null) {
            if(AJS.BASE_URL != '') {
                if(AJS.BASE_URL.lastIndexOf('/') != AJS.BASE_URL.length-1)
                    AJS.BASE_URL += '/';
                url = AJS.BASE_URL + url;
            }
        }

        if(!method)
            method = "POST";

        return new AJSDeferred(req, method, url);
    },

    serializeJSON: function(o) {
        var objtype = typeof(o);
        if (objtype == "undefined") {
            return "null";
        } else if (objtype == "number" || objtype == "boolean") {
            return o + "";
        } else if (o === null) {
            return "null";
        }
        if (objtype == "string") {
            return AJS._reprString(o);
        }
        if(objtype == 'object' && o.getFullYear) {
            return AJS._reprDate(o);
        }
        var me = arguments.callee;
        if (objtype != "function" && typeof(o.length) == "number") {
            var res = [];
            for (var i = 0; i < o.length; i++) {
                var val = me(o[i]);
                if (typeof(val) != "string") {
                    val = "undefined";
                }
                res.push(val);
            }
            return "[" + res.join(",") + "]";
        }
        // it's a function with no adapter, bad
        if (objtype == "function")
            return null;
        res = [];
        for (var k in o) {
            var useKey;
            if (typeof(k) == "number") {
                useKey = '"' + k + '"';
            } else if (typeof(k) == "string") {
                useKey = AJS._reprString(k);
            } else {
                // skip non-string or number keys
                continue;
            }
            val = me(o[k]);
            if (typeof(val) != "string") {
                // skip non-serializable values
                continue;
            }
            res.push(useKey + ":" + val);
        }
        return "{" + res.join(",") + "}";
    },

    loadJSON: function(url, type, debug) {
        var d = AJS.getRequest(url, type);
        var eval_req = function(data, req) {
            var text = req.responseText;
            if(text == "Error")
                d.errback(req);
            else
                return AJS.evalTxt(text);
        };
        d.addCallback(eval_req);
        return d;
    },

    evalTxt: function(txt) {
        try {
            return eval('('+ txt + ')');
        }
        catch(e) {
            return eval(txt);
        }
    },

    evalScriptTags: function(html) {
        var script_data = html.match(/<script.*?>((\n|\r|.)*?)<\/script>/g);
        if(script_data != null) {
            for(var i=0; i < script_data.length; i++) {
                var script_only = script_data[i].replace(/<script.*?>/g, "");
                script_only = script_only.replace(/<\/script>/g, "");
                eval(script_only);
            }
        }
    },

    encodeArguments: function(data) {
        var post_data = [];
        for(k in data)
            post_data.push(k + "=" + AJS.urlencode(data[k]));
        return post_data.join("&");
    },

    _reprString: function(o) {
        return ('"' + o.replace(/(["\\])/g, '\\$1') + '"'
        ).replace(/[\f]/g, "\\f"
        ).replace(/[\b]/g, "\\b"
        ).replace(/[\n]/g, "\\n"
        ).replace(/[\t]/g, "\\t"
        ).replace(/[\r]/g, "\\r");
    },

    _reprDate: function(date) {
        var year = date.getUTCFullYear();
        var dd = date.getUTCDate();
        var mm = date.getUTCMonth()+1;

        var leadingZero = function(nr) {
            if (nr < 10) nr = "0" + nr;
            return nr;
        }

        return '"' + year + '-' + mm + '-' + dd + 'T' + leadingZero(date.getUTCHours()) + ':' + leadingZero(date.getUTCMinutes()) + ':' + leadingZero(date.getUTCSeconds()) + '"';
    },


////
// Position and size
////
    getMousePos: function(e) {
        var posx = 0;
        var posy = 0;
        if (!e) var e = window.event;
        if (e.pageX || e.pageY) {
            posx = e.pageX;
            posy = e.pageY;
        }
        else if (e.clientX || e.clientY) {
            posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
            posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
        }
        return {x: posx, y: posy};
    },

    getScrollTop: function() {
        //From: http://www.quirksmode.org/js/doctypes.html
        var t;
        if (document.documentElement && document.documentElement.scrollTop)
                t = document.documentElement.scrollTop;
        else if (document.body)
                t = document.body.scrollTop;
        return t;
    },

    //Shortcut: AJS.$AP
    absolutePosition: function(elm) {
        if(!elm)
            return {x: 0, y: 0};

        if(elm.scrollLeft)
            return {x: elm.scrollLeft, y: elm.scrollTop};
        else if(elm.clientX)
            return {x: elm.clientX, y: elm.clientY};

        var posObj = {'x': elm.offsetLeft, 'y': elm.offsetTop};

        if(elm.offsetParent) {
            var next = elm.offsetParent;
            while(next) {
                posObj.x += next.offsetLeft;
                posObj.y += next.offsetTop;
                next = next.offsetParent;
            }
        }
        // safari bug
        if (AJS.isSafari() && elm.style.position == 'absolute' ) {
            posObj.x -= document.body.offsetLeft;
            posObj.y -= document.body.offsetTop;
        }
        return posObj;
    },

    getWindowSize: function(doc) {
        doc = doc || document;
        var win_w, win_h;
        if (self.innerHeight) {
            win_w = self.innerWidth;
            win_h = self.innerHeight;
        } else if (doc.documentElement && doc.documentElement.clientHeight) {
            win_w = doc.documentElement.clientWidth;
            win_h = doc.documentElement.clientHeight;
        } else if (doc.body) {
            win_w = doc.body.clientWidth;
            win_h = doc.body.clientHeight;
        }
        return {'w': win_w, 'h': win_h};
    },

    isOverlapping: function(elm1, elm2) {
        var pos_elm1 = AJS.absolutePosition(elm1);
        var pos_elm2 = AJS.absolutePosition(elm2);

        var top1 = pos_elm1.y;
        var left1 = pos_elm1.x;
        var right1 = left1 + elm1.offsetWidth;
        var bottom1 = top1 + elm1.offsetHeight;
        var top2 = pos_elm2.y;
        var left2 = pos_elm2.x;
        var right2 = left2 + elm2.offsetWidth;
        var bottom2 = top2 + elm2.offsetHeight;
        var getSign = function(v) {
            if(v > 0) return "+";
            else if(v < 0) return "-";
            else return 0;
        }

        if ((getSign(top1 - bottom2) != getSign(bottom1 - top2)) &&
                (getSign(left1 - right2) != getSign(right1 - left2)))
            return true;
        return false;
    },


////
// Events
////
    getEventElm: function(e) {
        if(e && !e.type && !e.keyCode)
            return e
        var targ;
        if (!e) var e = window.event;
        if (e.target) 
            targ = e.target;
        else if (e.srcElement) 
            targ = e.srcElement;
        if (targ && targ.nodeType == 3) // defeat Safari bug
            targ = targ.parentNode;
        return targ;
    },

    setEventKey: function(e) {
        if(!e)
            e = window.event;

        e.key = e.keyCode ? e.keyCode : e.charCode;

        e.ctrl = e.ctrlKey;
        e.alt = e.altKey;
        e.meta = e.metaKey;
        e.shift = e.shiftKey;
    },

    onEvent: function(elms, type, handler, listen_once) {
        //Reset the current
        elms = AJS.$A(elms);
        AJS.map(elms, function(elm) {
            if(elm.events)
                elm.events[type] = {};
        });

        return AJS.AEV(elms, type, handler, listen_once);
    },

    //--- window.onload optimization ----------------------------------------------
    ready_bound: false,
    is_ready: false,
    bindReady: function() {
        if ( AJS.ready_bound ) return;
        AJS.ready_bound = true;

        // Mozilla, Opera and webkit nightlies currently support this event
        if ( document.addEventListener ) {
            // Use the handy event callback
            document.addEventListener( "DOMContentLoaded", function(){
                document.removeEventListener( "DOMContentLoaded", arguments.callee, false );
                AJS.ready();
            }, false );

        // If IE event model is used
        } else if ( document.attachEvent ) {
            // ensure firing before onload,
            // maybe late but safe also for iframes
            document.attachEvent("onreadystatechange", function(){
                if ( document.readyState === "complete" ) {
                    document.detachEvent( "onreadystatechange", arguments.callee );
                    AJS.ready();
                }
            });

            // If IE and not an iframe
            // continually check to see if the document is ready
            if ( document.documentElement.doScroll && window == window.top ) (function(){
                if ( AJS.is_ready ) return;

                try {
                    // If IE is used, use the trick by Diego Perini
                    // http://javascript.nwbox.com/IEContentLoaded/
                    document.documentElement.doScroll("left");
                } catch( error ) {
                    setTimeout( arguments.callee, 0 );
                    return;
                }

                // and execute any waiting functions
                AJS.ready();
            })();
        }

        // A fallback to window.onload, that will always work
        AJS.AEV( window, "load", AJS.ready );
    },

    ready_list: [],
    ready: function(fn) {
        if(AJS.is_ready)
            return ;

        AJS.is_ready = true;
        AJS.map(AJS.ready_list, function(fn) {
            fn.call(window);
        });
        AJS.ready_list = [];
    },

    _f_guid: 0,
    _wipe_guid: 0,

    //Shortcut: AJS.AEV
    addEventListener: function(elms, types, handler, listen_once) {
        elms = AJS.$A(elms);
        types = AJS.$A(types);

        AJS.map(elms, function(elm) {
            if(listen_once)
                handler.listen_once = true;
                
            if (!handler.$f_guid) 
                handler.$f_guid = AJS._f_guid++;

            if (!elm.events) 
                elm.events = {};
            
            AJS.map(types, function(type) {
                var handlers = elm.events[type];

                if(elm == window && type == 'load') {
                    AJS.ready_list.push( handler );
                }
                else {
                    if(type == 'lazy_load') {
                        type = 'load';
                    }

                    if (!handlers) {
                        handlers = elm.events[type] = {};

                        if(elm["on" + type])
                            handlers[0] = elm["on" + type];
                    }
                    
                    if(!elm._wipe_guid) {
                        elm._wipe_guid = AJS._wipe_guid++;
                    }

                    handlers[handler.$f_guid] = handler;
                    elm["on" + type] = AJS.handleEvent;
                }
            });

            elm = null;
        });
    },

    handleEvent: function(event) {
         var me = this;

         event = event || window.event;

         if(!event)
             return ;

         if(!event.ctrl && event.type.indexOf('key') != -1)
             AJS.setEventKey(event);

         var handlers = this.events[event.type];

         var handlers_to_delete = [];
         var res = true;
         for (var i in handlers) {
             var handler = this.$$handleEvent = handlers[i];

             if(handler == AJS.handleEvent)
                 continue;

             res = handler(event);
             if(handler.listen_once)
                 handlers_to_delete.push(handler);
         }

        if(handlers_to_delete.length > 0)
            AJS.map(handlers_to_delete, function(handler) {
                delete me.events[event.type][handler.$f_guid];
            });

        return res;
    },

    //Shortcut: AJS.REV
    removeEventListener: function(elms, type, handler) {
        elms = AJS.$A(elms);
        map(elms, function(elm) {
            if (elm.events && elm.events[type]) {
                delete elm.events[type][handler.$f_guid];
            }
        });
    },

    //Shortcut: AJS.$b
    bind: function(fn, scope, /*optional*/ extra_args) {
        fn._cscope = scope;
        return AJS._getRealScope(fn, extra_args);
    },

    bindMethods: function(self) {
        for (var k in self) {
            var func = self[k];
            if (typeof(func) == 'function') {
                self[k] = AJS.$b(func, self);
            }
        }
    },

    preventDefault: function(e) {
        if(AJS.isIe()) 
            window.event.returnValue = false;
        else {
            e.preventDefault();
        }
    },

    _listenOnce: function(elm, type, fn) {
        var r_fn = function() {
            AJS.removeEventListener(elm, type, r_fn);
            fn(arguments);
        }
        return r_fn;
    },

    _getRealScope: function(fn, /*optional*/ extra_args) {
        extra_args = AJS.$A(extra_args);
        var scope = fn._cscope || window;

        return function() {
            try {
                var args = AJS.$FA(arguments).concat(extra_args);
                return fn.apply(scope, args);
            }
            catch(e) {
            }
        };
    },

////
// Timeouts
////
    _reccruing_tos: {},
    setSingleTimeout: function(name, fn, interval) {
        var current = AJS._reccruing_tos[name];
        if(current)
            clearTimeout(current);
        AJS._reccruing_tos[name] = setTimeout(fn, interval);
    },


////
// Misc.
////
    keys: function(obj) {
        var rval = [];
        for (var prop in obj) {
            rval.push(prop);
        }
        return rval;
    },

    values: function(obj) {
        var rval = [];
        for (var prop in obj) {
            rval.push(obj[prop]);
        }
        return rval;
    },

    urlencode: function(str) {
        return encodeURIComponent(AJS.isDefined(str) && str.toString() || '');
    },

    urldecode: function(str) {
        var result = decodeURIComponent(AJS.isDefined(str) && str.toString() || '');
        return result.replace(/\+/g, ' ');
    },

    isDefined: function(o) {
        return (o != "undefined" && o != null)
    },

    isArray: function(obj) {
        try {
            return obj instanceof Array;
        }
        catch(e) {
            return false;
        }
    },

    isString: function(obj) {
        return (typeof obj == 'string');
    },

    isNumber: function(obj) {
        return (typeof obj == 'number');
    },

    isObject: function(obj) {
        return (typeof obj == 'object');
    },

    isFunction: function(obj) {
        return (typeof obj == 'function');
    },

    isDict: function(o) {
        var str_repr = String(o);
        return str_repr.indexOf(" Object") != -1;
    },

    exportToGlobalScope: function(scope) {
        scope = scope || window;
        for(e in AJS)
            if(e != 'addEventListener')
                scope[e] = AJS[e];
    },

    log: function(o) {
        try {
            if(window._firebug)
                window._firebug.log(o);
            else if(window.console)
                console.log(o);
        }
        catch(e) {
        }
    },

    strip: function(str) {
        return str.replace(/^\s+/, '').replace(/\s+$/g, '');
    },

    trim_if_needed: function(str, limit, delim) {
        if(str.length > limit) {
            return str.substring(0, limit) + (delim || '...');
        }
        return str;
    }

}

AJS.Class = function(members) {
    var fn = function() {
        if(arguments[0] != 'no_init') {
            return this.init.apply(this, arguments);
        }
    }
    fn.prototype = members;
    AJS.update(fn, AJS.Class.prototype);
    return fn;
}
AJS.Class.prototype = {
    extend: function(members) {
        var parent = new this('no_init');
        for(k in members) {
            var prev = parent[k];
            var cur = members[k];
            if (prev && prev != cur && typeof cur == 'function') {
                cur = this._parentize(cur, prev);
            }
            parent[k] = cur;
        }
        return new AJS.Class(parent);
    },

    implement: function(members) {
        AJS.update(this.prototype, members);
    },

    _parentize: function(cur, prev) {
        return function(){
            this.parent = prev;
            return cur.apply(this, arguments);
        }
    }
};//End class

//Shortcuts
AJS.$ = AJS.getElement;
AJS.$$ = AJS.getElements;
AJS.$f = AJS.getFormElement;
AJS.$b = AJS.bind;
AJS.$p = AJS.partial;
AJS.$FA = AJS.forceArray;
AJS.$A = AJS.createArray;
AJS.DI = AJS.documentInsert;
AJS.ACN = AJS.appendChildNodes;
AJS.RCN = AJS.replaceChildNodes;
AJS.AEV = AJS.addEventListener;
AJS.REV = AJS.removeEventListener;
AJS.$bytc = AJS.getElementsByTagAndClassName;
AJS.$AP = AJS.absolutePosition;

//Old stuff
AJS.loadJSONDoc = AJS.loadJSON;
AJS.queryArguments = AJS.encodeArguments;

AJS.$gp = AJS.getParentBytc;
AJS.$gc = AJS.getChildBytc;

AJS.$sv = AJS.setVisibility;

//General callsbacks
AJS.generalErrorback = null;
AJS.generalCallback = null;

AJSDeferred = function(req, method, url) {
    this.callbacks = [];
    this.errbacks = [];
    this.req = req;
    this.http_method = method;
    this.http_url = url;
}
AJSDeferred.prototype = {
    excCallbackSeq: function(req, list) {
        var data = req.responseText;

        if(AJS.generalCallback) {
            data = AJS.generalCallback(req, list);
            if(!data)
                return ;
        }

        while (list.length > 0) {
            var fn = list.pop();
            var new_data = fn(data, req);
            if(new_data)
                data = new_data;
            else if(new_data == false)
                break;
        }
    },

    callback: function () {
        this.excCallbackSeq(this.req, this.callbacks);
    },

    errback: function() {
        if(this.errbacks.length == 0) {
            if(AJS.ajaxErrorHandler)
                AJS.ajaxErrorHandler(req.responseText, req);
            else {
                var txt = this.req.responseText.substring(0, 200);
                if(AJS.strip(txt) && txt.indexOf("<html") == -1) {
                    alert("Error encountered:\n" + txt);
                }
            }
        }

        if(AJS.generalErrorback) {
            var result = AJS.generalErrorback(this.req);
            if(!result)
                return ;
        }

        this.excCallbackSeq(this.req, this.errbacks);
    },

    addErrback: function(fn) {
        this.errbacks.unshift(fn);
    },

    addCallback: function(fn) {
        this.callbacks.unshift(fn);
    },

    abort: function() {
        this.req.abort();
    },

    addCallbacks: function(fn1, fn2) {
        this.addCallback(fn1);
        this.addErrback(fn2);
    },

    _onreadystatechange: function () {
        var req = this.req;
        var d = this;

        if (req.readyState == 4) {
            var status = '';

            try {
                status = req.status;
            }
            catch(e) {
            };

            if(status == 200 || status == 304 || req.responseText == null) {
                this.callback();
            }
            else {
                this.errback();
            }
        }
    },

    sendReq: function(data) {
        var req = this.req;
        var http_method = this.http_method;
        var http_url = this.http_url;

        if(http_method == 'POST') {
            req.open(http_method, http_url, true);
            req.onreadystatechange = AJS.$b(this._onreadystatechange, this);
            req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

            if(AJS.isObject(data)) {
                req.send(AJS.encodeArguments(data));
            }
            else if(AJS.isDefined(data))
                req.send(data);
            else {
                req.send('');
            }
        }
        else {
            req.open("GET", http_url, true)
            req.onreadystatechange = AJS.$b(this._onreadystatechange, this);
            req.send(null);
        }

    }
};//End deferred

AJS._createDomShortcuts()
}

script_loaded = true;
AJS.exportToGlobalScope();
AJS.bindReady();
cu Oggy1
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: im Opera ist ein Absenden nach Vorschau nicht möglich...

Beitrag von BNa »

Tja, der Code ist etwas buggie, da die DOM-Modelle in die Zukunft rasen, das recht alte Script aber wohl weitgehend unangepasst blieb. Opera ist da oftmals Vorläufer und sehr innovativ. Also zwei Möglichkeiten, den Autor kontaktieren oder den Mod ausbauen und nach einer Alternative suchen.
Oggy1
Mitglied
Beiträge: 99
Registriert: 28.10.2007 22:05
Kontaktdaten:

Re: im Opera ist ein Absenden nach Vorschau nicht möglich...

Beitrag von Oggy1 »

Hallo,
habe den MOD mal ausgebaut und nun ist zwar diese Fehlermeldung weg, aber das Problem bleibt trotzdem bestehen, demnach liegt es also nicht an diesen MOD :(
cu Oggy1
Antworten

Zurück zu „[3.0.x] Mod Support“