如何停用console.log和alert?

时间:2012-11-18 01:46:36

标签: javascript

作为一个新手,我在学习JavaScript时尝试使用console.log和alert()。我发现了一个我感兴趣的网站,并将html和javascript / jquery复制到我的本地主机上来玩它。当我将console.log()和alert语句放入javascript中以帮助解决问题时,它们都没有奏效。我在多个浏览器(Chrome,Safari,Firefox)中尝试过此操作,删除浏览器历史记录等。对我来说,没有什么不寻常的代码。有什么我可能会失踪?代码运行正常(控制台中没有记录错误)。

顺便说一下,我将它复制到我的本地主机上,因为我不知道如何在Firebug中添加控制台日志。有没有办法这样做?我从console.log获得更多信息(我理解),而不是设置断点。

这是代码。它显然相当直接(虽然我仍然需要console.log才能完全获得它)。

// Global variables
var flag;
var dark;

$(document).ready(function() {
// $(function() {

    // Hide all closed sections
    $(".closed").next().hide();

    // Add slide functions to all sections (h1 elements)
    $("h1").click(function () {
        if($(this).is('.closed')) {
            $(".open").delay(200, function() { $(this).next().slideUp("slow"); });
            $(this).delay(200, function() { $(this).next().slideDown("slow"); });
            $("h1").deactivateElement();
            $(this).activateElement();
        }
        else if($(this).is('.open')) {
            $(this).delay(200, function() { $(this).next().slideUp("slow"); });
            $(this).deactivateElement();
        }
    });

    // Add a function to toggle the CSS styles
    $("a#style_switcher").click(function () { flag = !flag; dark.disabled = flag; });

    // Add hover functions to all sections (h1 elements)
    $("h1").hover(function() { $(this).addClass('hover'); }, function() { $(this).removeClass('hover'); });


    // Delay the call to (slide) functions
    // => http://james.padolsey.com/javascript/jquery-delay-plugin/
    $.fn.delay = function(time, callback) {
        jQuery.fx.step.delay = function() {};
        return this.animate( { delay: 1 }, time, callback);
    }

    // Set an element class to 'open' or 'closed'
    $.fn.activateElement = function() { switchClasses($(this), 'open', 'closed'); }
    $.fn.deactivateElement = function() { switchClasses($(this), 'closed', 'open'); }

    // Do this at start
     initialize(console.log("farting"));
      alert("hi");

    $(".who").delay(600, function() { $(this).next().slideDown("slow"); });
     $(".who").activateElement();
});


// Initialization function
function initialize () {
    flag = true;
    dark = document.getElementById("dark_css");
    dark.disabled = flag;



    // Set year in copyright section
    document.getElementById('year').innerHTML = (new Date()).getFullYear();
}

// Utility function for switching/toggling classes
function switchClasses (element, classToAdd, classToRemove) {



    element.addClass(classToAdd);
    element.removeClass(classToRemove);
    // De/Activate the given element
    (classToAdd == 'open') ? element.addClass('active') : element.removeClass('active');
}

3 个答案:

答案 0 :(得分:1)

回应你的头衔,这个:

window.alert = function () { }
alert('hi');

不会触发。

答案 1 :(得分:0)

initialize(console.log("farting"));
alert("hi");

这有什么神奇之处?

这里有两个问题:

  1. 您正在将参数传递给参数less function function initialize () {,这在语法上是错误的,您不能指望该语句可以执行您想要的操作。

  2. alert是一个未定义的函数,您可能意味着window.alert但是使用console.log应该足够了,因为前一页没有兼容性图表提到:

      

    DOM级别0.不属于任何标准。

    因此,建议使用console.log,因为它至少提供了兼容性图表。

    尝试将console.log("hi");放在自己的行上。

  3. 真正的交易是learning breakpoints

答案 2 :(得分:0)

我建议你使用控制台本身来执行那些测试并运行一些“示例代码” Chrome控制台: https://developers.google.com/chrome-developer-tools/docs/console