enl*_*loz 14 javascript console logging conflict magento
我在Magento有一个自定义的phtml页面.据我所知,Magento使用jQuery和原型库.
例如,如果我需要外部jQuery/jQueryUI,我需要使用.noConflict()
但是,如果我想使用
console.log('Hello world');
Run Code Online (Sandbox Code Playgroud)
在Chrome 15控制台中,我没有得到任何响应.也尝试使用Firebug.
显然,与Magento JavaScript代码存在一些冲突.有什么解决方案吗?
sg3*_*g3s 45
所以鉴于不想亵渎这个网站,我只会说某人没有想到在magento团队中,或者某些蹩脚的代码进入实时发布....
如果您console.log()没有处理Magento安装,可能是因为以下原因:
在magento/js/varien/js.js@ line~636,Magento ver.1.6.2.0
if (!("console" in window) || !("firebug" in console))
{
var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
"group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
window.console = {};
for (var i = 0; i < names.length; ++i)
window.console[names[i]] = function() {}
}
Run Code Online (Sandbox Code Playgroud)
这有效地阻止console.log()了使用firebug在firefox之外的任何浏览器中工作.
当然,为了保护IE,但我认为这是获取它的错误方法,相反,人们应该知道他们对他们的日志记录做了什么,并在他们不这样做时面对后果.
要修复它,只需确保delete window['console'];在尝试执行之前放置(javascript)console.log(),或者如果您不介意修改核心文件,请删除上面的代码.
请注意:删除生产的控制台修复程序,删除在IE6-8中不起作用并抛出错误
在 js.js 文件中有这样的代码:
if (!("console" in window) || !("firebug" in console))
{
var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
"group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
window.console = {};
for (var i = 0; i < names.length; ++i)
window.console[names[i]] = function() {}
}
Run Code Online (Sandbox Code Playgroud)
那么它实际上做了什么,如果控制台不是 firebug 控制台(在 firefox 中),它会停用它。所以在谷歌浏览器的内置控制台中,它不起作用。
有 2 个选项:将 firefox 与 firebug 一起使用,或者删除此代码块。
| 归档时间: |
|
| 查看次数: |
11729 次 |
| 最近记录: |