0

@runs-at document-startの GreaseMonkey ユーザースクリプトで yepnope (デフォルトで Modernizr にバンドルされています) を使用すると、ユーザースクリプト全体が「n is undefined」というエラーで失敗します。これは、「firstScript が未定義」であることを意味します。

実際、それは次の行を指します: insBeforeObj = isGeckoLTE18 ? docElement : firstScript.parentNode,

4

1 に答える 1

0

GreaseMonkey のドキュメント開始時に DOM がまだロードされていないため、これは失敗します。

回避策 1: Modernizr で yepnope を使用しないでください。これは必須ではありません。

回避策 2: ドキュメントの最後で Modernizr/yepnope を実行します。おそらくそこから DOM を操作し始めているのではないでしょうか?

document.addEventListener('DOMContentLoaded', _runAtDocumentEnd, false);

function _runAtDocumentEnd() {

/* insert Modernizr/Yepnope library here */

}

回避策 3: ドキュメントの最後で実行します。しかし、ドキュメントの開始時に実行することを明示的に望んでいたため、これはおそらく許容できる回避策ではありません。

于 2013-06-02T13:06:05.783 に答える