0

次のコードを含む Firefox アドオンがあります。

$("table > tbody > tr > td[width='600']").wrapInner("<div id='content_cont' />");

そのコード行は実行されますが、それ以降のすべての行は実行されません。Firefox エラー コンソールに 500KB を超えるコードを持つエラーがスローされます。

コード:

An exception occurred.
Traceback (most recent call last):
  File "resource://jid0-ib8arkgejpxo7qidkuieut5rquk-at-jetpack/flvs-educator-release-version/data/redesign.js", line 49, in 
    $("table > tbody > tr > td[width='600']").wrapInner("<div id='content_cont' />");
  File "resource://jid0-ib8arkgejpxo7qidkuieut5rquk-at-jetpack/flvs-educator-release-version/data/jquery.js", line 2, in .wrapInner
    (function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s)...<tons of meaningless code>...&define("jquery",[],function(){return p})})(window);
ReferenceError: Begin is not defined

なぜこれを行っているのかわかりません。構文が間違っていますか?

4

1 に答える 1

5

ラップしているコンテンツにscript要素が含まれwrapInnerている場合は、ページが最初に読み込まれたときに実行されたとしても、再度実行されます。詳細については、jQuery のバグ トラッカーのチケット #9134を参照してください。

ラップしているコンテンツ内の要素の 1 つにエラーがあるようです。scriptそのエラーにより、コードが呼び出しを超えて実行されなくなりwrapInnerます。コードは一度しか実行されないと想定しているため、エラーが発生している可能性があります。script最も簡単な解決策は、コンテンツをラップする前にコンテンツから要素を削除することです。

$("table > tbody > tr > td[width='600']").find('script')
  .remove()
.end().wrapInner("<div id='content_cont' />");
于 2012-10-01T18:32:59.500 に答える