[英]using XPath to find node under a context node does not work (firefox/firebug/javascript)
[英]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的錯誤嗎?
謝謝!
看起來像螢火蟲的蟲子。 在最后一條語句之前添加新行似乎可以解決此問題。
確實,我也復制了它。 似乎是一個錯誤。
但是,一些注意事項:
通常,建議您像執行操作時一樣,直接最小化JavaScript的執行,但是在頁面加載后推遲執行。 例如,您可以將所有內容包裝在一個名為init
的函數中,然后對load
事件使用addEventListener
/ attachListener
(或編寫<body onload="init()">
)。 在HTML中按時執行JS會減慢頁面的呈現速度。 所有的JS必須被解析和執行,因為它可能會動態添加一些HTML元素,這將在頁面稍后更改HTML的呈現。 因此,避免以這種方式將繁重的計算和冗長的腳本添加到頁面中。
您還可以將代碼包裝在所謂的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會正確執行斷點。
請注意,在Firebug的代碼清單中,行號13和14沒有用綠色標記。 這是Firebug提供的信息,如果將其放在此行中,則不會出現斷點。 在大多數情況下,這意味着該行中沒有JavaScript(例如HTML,空行,注釋等),但有時是由於Firebug中的錯誤所致。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.