La console JavaScript se connecte à Magento
J'ai un custom phtml pages dans Magento. Que je sache Magento utilise jQuery et prototype bibliothèques.
Par exemplesi j'ai besoin externes jQuery/jQueryUI, j'ai besoin d'utiliser .noConflict()
Mais si je veux utiliser
console.log('Hello world');
En Chrome 15 de la console je n'ai obtenu aucune réponse, rien. Aussi essayé avec Firebug.
Évidemment, il est en conflit avec Magento code JavaScript. Est-il une solution?
source d'informationauteur enloz
Vous devez vous connecter pour publier un commentaire.
Donc, à la lumière de ne pas vouloir frottis de ce site avec le blasphème, je vais juste dire que quelqu'un n'était pas à l'esprit dans l'équipe magento ou en quelque sorte certains de merde code obtenu en live les rejets....
Si votre
console.log()
n'est pas de travailler sur une installation de Magento, il est probable pour les raisons suivantes:Dans
magento/js/varien/js.js
@ ligne ~636, Magento ver. 1.6.2.0Cela empêche efficacement
console.log()
de travailler dans n'importe quel navigateur autre que firefox avec firebug.À protéger c'est à dire, sûrement, mais je pense que c'est un mauvais moyen pour obtenir arround, au contraire, les gens doivent être conscients de ce qu'ils font avec leur de journalisation et de faire face aux conséquences quand ils ne le font pas.
Pour le fixer assurez-vous de mettre
delete window['console'];
(javascript) avant d'essayer de faire unconsole.log()
ou si vous n'avez pas l'esprit de modifier les fichiers de base, supprimer le code ci-dessus.Veuillez noter: supprimer la console correctif pour la production, la suppression ne fonctionne pas sous IE6-8 et renvoie une erreur
L'ajout de cette mise à jour dans votre
app/design/frontend/default/default/layout/local.xml
ou de votre thèmeapp/design/frontend/default/default/layout/page.xml
dans le<default>
poignée est la plus propre, la plus directe pour rajouter l'objet de console dans tous les navigateurs sur toutes les pages.Dans le fichier js.js il y a ce code :
Donc ce qu'il fait réellement, si la console n'est pas la console de firebug (dans firefox) , il le désactiver. Ainsi, dans le construit dans la console de google chrome, elle ne fonctionne pas.
Il y a 2 options : Utiliser firefox avec firebug , ou supprimer ce bloc de code.
C'est une solution rapide.
Source: http://updownleftright.net/blog/2011/09/javascript-tip-of-the-day-restoring-console-log-on-a-magento-site
Pourquoi ne pas vérifier si la Console objet est défini en premier?
Au lieu de:
Vous pourriez écrire:
Tout ce que vous devez faire avant de vous journal de la console la première fois sur la page.
Après AlexB post, j'ai utilisé ce travail autour de.
Comme vous pouvez le voir, le is_chrome var renvoie true ou false, l'ajout de !is_chrome arrête l'exécution du code.
À l'aide de
console.log()
sur les navigateurs à l'aide de Firebug 1.9.0+ avec Magento jusqu'à 1.6.2.0 sera un échec, car Magento vérifie l'console.firebug
de la propriété, mais la propriété a été supprimé avec Firebug 1.9.0 pour des raisons de confidentialité.Voir le fichier
js/varien/js.js
:Depuis Magento 1.7.0.0 l'ensemble de cette condition est commenté pour corriger cela (et d'autres) problème(s).
Ce n'est plus un problème à cause de la dernière version du Mage de base. Le code qui casse
console.log()
est commenté maintenant. Je ne sais pas exactement dans quelle version il a été fixé, mais il est fixé CE 1.7.0.2.