Jetzt kostenlos Anmelden!

Dirk Kántor Männlich

aká Dooki

Beiträge: 2 073

Geschlecht: Männlich

PHPKIT Version: keine

1

Montag, 10. Januar 2011, 10:32

Opera - Problem beim verfassen/editieren von Beiträgen (Textarea)

Seit Opera 10.50 scheint es so, dass dort etwas an der Javascript Engine geändert wurde, jedenfalls besteht das Problem, dass man keine Beiträge mehr verfassen kann.

Problem mit Opera

Man kann weder Beiträge verfassen, Themen erstellen, noch eigene Beiträge im nachhinein editieren.

Es sei dahingestellt woran es liegt, ob WBB oder Opera die Schuld dabei zu tragen hat, jedenfalls fiel es hier beim WBB 3 auf, dass man jenes nicht mehr tun kann.
In neueren Versionen soll dies wohl hier und da behoben worden sein.

Was aber machen, wenn man auf einer Seite ohne WBB Beiträge verfassen möchte?
Eine Art Notlösung dazu kann man direkt im Opera Browser vornehmen.

Problem teilweise beheben

Dazu geht man wie folgt vor
Man macht einen Rechtklick auf der entsprechenden Seite und wählt im aufklappenden Menü den Punkt "Seitenspezifische Einstellungen...":
[attach]1223[/attach]

In dem darauf folgenden Fenster, nimmt man unter der Registerkarte "Netzwerk" im Bereich "Browser-Identifikation" die Einstellung "Als Firefox maskieren" vor:
[attach]1224[/attach]

Vorher / Nachher

Vor dieser Änderung sah man den Editor wie folgt:
[attach]1225[/attach]

Nachdem man das aber nun geändert hat, sind zwar alle BBCodes weg, sieht man eine reine Textarea in der man nun seine Beiträge und Themen erstellen und eigene editieren kann:
[attach]1226[/attach]

Was ist das eigentliche Problem?

Das WBB 3.0.x hat in seiner Javascript Datei, die für den WYSIWYG Editor zuständig ist, Opera Versionsnummer abhängig angegeben, was gemacht werden soll. Als der WYSIWYG Editor aber entstand, war man bei maximal Version 9 des Opera Browsers, wenn nicht sogar schon viel früher. Viele WBB 3.0.9 Nutzer haben eine Version des WYSIWYG Editors installiert, welche noch Opera Versionsabhängig reagiert.

Javascript-Quelltext

1
2
3
4
5
6
		if (USER_AGENT.match(/opera\/9\.50/)) {
			this.isOpera95 = true;
		}
		if (USER_AGENT.match(/version\/10\.5/)) {
			this.isOpera105 = true;
		}


Das könnte man wie folgt beheben um bis zur Version 11 des Opera den "Fehler" zu beheben: (da ich leider nicht weiss wieviel Versionen zwischen 10.50 und 11.00 existierten, sind dort von 10.50-11.xx alle aufgeführt)

Javascript-Quelltext

1
2
3
		if (USER_AGENT.match(/version\/10\.5/) || USER_AGENT.match(/version\/10\.6/) || USER_AGENT.match(/version\/10\.7/) || USER_AGENT.match(/version\/10\.8/) || USER_AGENT.match(/version\/10\.9/) || USER_AGENT.match(/version\/11/)) {
			this.isOpera105 = true;
		}


Man gab dem Opera sogar die Möglichkeit einen simplen Editor anzuzeigen, der BBCodes enthielt:

Javascript-Quelltext

1
2
3
4
5
6
7
8
9
10
		// give incompatible browser the possibility to insert bbcode tags via javascript
		// no wysiwyg (insert bbcode tags instead)
		// if admin didn't enabled wysiwyg or code view just show users the simple area
		if (this.isOpera105) {
			return false; // Opera 10.50 bekommt keinen simplen Editor
		}
		if (...... || this.isOpera95 ......) { // Opera 9.50 darf einen simplen Editor bekommen
			tinyMCE.isSimpleTextarea = true;
			window.setTimeout("tinyMCE.loadSimpleTextarea()", 5);
		}


In der neueren Version des WYSIWYG Editor ist es aber Versionsunabhängig "gelöst" worden:

Javascript-Quelltext

1
2
3
	if (this.isOpera) {
		this.isGecko = true;
	}


Javascript-Quelltext

1
2
			// Browser check: if browser is not supported: no wysiwygEditor.
			if (!this.isMSIE && !this.isGecko && !this.isSafari && !this.isOpera) return;


Auch wenn noch veralteter Code aus vergangen Tage drin steckt: (siehe "tinyMCE.isOpera95" was nicht mehr existiert)

Javascript-Quelltext

1
2
3
4
5
6
7
	// add simple textarea to template
	if (tinyMCE.isOpera95 || tinyMCE.isGecko || tinyMCE.isKonqueror) {
		var rng = textarea.ownerDocument.createRange();
		rng.setStartBefore(textarea);
		var fragment = rng.createContextualFragment(editorTemplate);
		parentElement.replaceChild(fragment, textarea);
	} 



Lösung im Kitnetwork Forum

Hier wurde das nun mit der neueren Javascript Datei für den WYSIWYG Editor gelöst und man kann auch mit den BBCodes seine Texte schreiben.
[attach]1227[/attach]

P.S. Screenshot und Editierung per Opera 11.00 gemacht.
:thumbsup:    :thumbsup:       *tc*       :thumbsup:    :thumbsup:
8o           Achtung: Dirk Kántor ist unterwegs!           8o
Er verteilt gerne Verwarnungen ohne vorher darüber diskutiert zu haben.