簡體   English   中英

斷點在使用Firebug(1.11.2)的Firefox(19.0)中不起作用

[英]Breakpoints does not work in Firefox (19.0) using Firebug(1.11.2)

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>An example</title>

        <script type="text/javascript">
            function User(id) {
                this.id = id;
            };
            var bob = new User(32);

            var jack = new User(bob.id); 
            jack.id = 100;   // Set a breakpoint here, but it does not stop here
            alert('end of test' + jack.id);
        </script>
    </head>
    <body>

    </body>
</html>

順便說一句,斷點在chrome中正常工作。

我很困惑...這應該是一個非常簡單的例子。 這是Firefox的錯誤嗎?

謝謝!

看起來像螢火蟲的蟲子。 在最后一條語句之前添加新行似乎可以解決此問題。

確實,我也復制了它。 似乎是一個錯誤。

但是,一些注意事項:

  1. 通常,建議您像執行操作時一樣,直接最小化JavaScript的執行,但是在頁面加載后推遲執行。 例如,您可以將所有內容包裝在一個名為init的函數中,然后對load事件使用addEventListener / attachListener (或編寫<body onload="init()"> )。 在HTML中按時執行JS會減慢頁面的呈現速度。 所有的JS必須被解析和執行,因為它可能會動態添加一些HTML元素,這將在頁面稍后更改HTML的呈現。 因此,避免以這種方式將繁重的計算和冗長的腳本添加到頁面中。

  2. 您還可以將代碼包裝在所謂的IIFE(立即調用的函數表達式)中:

      <script type="text/javascript"> (function () { function User(id) { this.id = id; }; var bob = new User(32); var jack = new User(bob.id); jack.id = 100; // Set a breakpoint here, but it does not stop here alert('end of test' + jack.id); })(); </script> 

    在這種情況下,Firebug會正確執行斷點。

  3. 請注意,在Firebug的代碼清單中,行號13和14沒有用綠色標記。 這是Firebug提供的信息,如果將其放在此行中,則不會出現斷點。 在大多數情況下,這意味着該行中沒有JavaScript(例如HTML,空行,注釋等),但有時是由於Firebug中的錯誤所致。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM