Firebug報告「沒有返回功能」錯誤,沒有位置(第1行沒有任何內容)。我如何追蹤這個錯誤的來源?返回不在功能
return not in function
[Break on this error] return(0)
javascript:return... (line 1)
我在Ubuntu上運行FF 2.0.0.20上的FireBug 1.05。
我發現了一個溶液的作品(該配置):
var link = document.createElement('a');
link.href='/';
if (childSummary.more) {
link.onclick = capture(function(id) { follow(id); }, childSummary.id);
} else {
link.onclick = capture(function(id) { show(id); }, childSummary.id);
}
link.appendChild(document.createTextNode(name));
div.appendChild(link);
[...]
function capture(fn, val) {
return function() { fn(val); return false; };
}
的代碼是在一個循環,其中ID是變化的,因此需要捕獲功能。
以前的href是'javascript:return 0',並且捕獲函數沒有直接返回false,而是使用fn的結果,並且在返回等價的true時存在一個路徑。正在評估href導致錯誤。
將href定義爲'#'或''導致所有鏈接顯示爲已經訪問過。根本不定義href導致沒有鏈接突出顯示。這似乎最簡單。
看起來像。我正在使用javascript生成帶有onclick函數的鏈接,並設置鏈接的href屬性。 onclick函數在其操作結束時返回false,我認爲這會阻止對href進行評估。由於這只是開始失敗,我想知道如果在早期的onclick函數行爲有所不同。 – dougfelt 2009-04-27 21:41:24
我們能否看到鏈接的確切代碼?「返回false」在onclick內是可以的;它會阻止href被評估。但如果你這樣使用它,href本身應該是一個URL,而不是更多的JS。 – 2009-04-27 21:48:13
這是一個很好的解釋,說明如何使用onclick來阻止加載錨點:http://www.javascripttoolbox.com/bestpractices/#onclick – 2009-04-27 21:49:21