Javascript me file des boutons, des fois

Voilà l’objet du délit :

var viewSource = function(prefix, filename, content) {
		var cm_editor;	// Codemirror instance
		var src =
			'<div class="' + prefix + '_view">' +
			'<h1>' + filename + '</h1>' +
			'<textarea id="' + prefix + '_source">' + $.parseJSON(window.atob(content)) + '</textarea>' +
			'</div>';
		$.magnificPopup.open({
			items: {
				src: src,
				type: 'inline'
			},
			callbacks: {
				open: function() {
					if (dotclear.colorsyntax) {
						// Popup opened, format textarea with codemirror
						var options = {
							mode: 'text/html', // 'application/x-httpd-php',
							tabMode: 'indent',
							lineWrapping: "true",
							lineNumbers: "true",
							matchBrackets: "true",
							autoCloseBrackets: "true",
							readOnly: "true"
						};
						if (dotclear.colorsyntax_theme !== '') {
							options.theme = dotclear.colorsyntax_theme;
						}
						var textarea = document.getElementById(prefix + '_source');
						cm_editor = CodeMirror.fromTextArea(textarea, options);
					}
				},
				close: function() {
					if (cm_editor !== undefined && cm_editor !== null) {
						// Remove Codemirror instance
						cm_editor.toTextArea();
					}
				}
			}
		});
	}

Soit le code qui me sert (pour l’instant), dans le plugin sysInfo, pour afficher le code source d’un fichier cache (template ou statique).

Ce qui est étrange c’est qu’une fois sur deux ça fonctionne ; en fait ce n’est pas tout à fait une fois sur deux, mais plutôt que le premier affichage d’un fichier A se fait correctement, celui d’un fichier B passe fugacement par Codemirror (pourtant j’ai tracé son appel) puis revient à un affichage normal de la textarea et celui d’un fichier C n’est même plus passé par la moulinette de Codemirror.

Étrange et bizarre…


Je viens de faire une vidéo qui illustre le problème :

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/13256

Haut de page