私はuserscriptを書いて、Greasemonkey 0.9.13でそれを実行していません。tryブロックを使用しないコードは例外をスローします。しかし、ブロックでは、それは
私だけtry... catch
ブロック(ライン54-66)を除去するが、それは以下のような例外がスローされます、その中にコードを維持した場合:
キャッチされない例外:[例外...「の操作がサポートされていません。 「コード: "9" nsresult: "0x80530009(NS_ERROR_DOM_NOT_SUPPORTED_ERR)" 場所: "リソース://greasemonkey/runScript.jsライン:29"]
しかし、剥離スクリプトは、W/O Chromeでよく実行問題がある。
しかし、NOTコンソールには何も印刷されません。つまり、tryブロックのコードはtryブロックでラップされても例外をスローしません。
あなたは私にその理由を教えてもらえますか?
これはそのlinked sourceからコードスニペットです:
var streamItems = $('div.main-content div.stream-item');
var streamItemsLength = streamItems.length;
var innerHeight = window.innerHeight;
var scrollY = window.scrollY;
var y = scrollY + innerHeight;
var tweet;
var tweetHeight = 0;
try {
for (var sumHeight = getHeaderHeight(), num = 0; sumHeight < y; num++, sumHeight += tweetHeight) {
tweet = streamItems[num];
tweetHeight = getHeight(tweet);
if (tweetHeight == 0) {
removeClass(tweet, 'hidden-tweet');
tweetHeight = getHeight(tweet);
}
}
}
catch (e) {
console.log(e.stack);
}
OK、私は 'for'ループの終了条件を修正しましたが、問題は修正されているようです。そして、私はそれを掘り下げ、 'div.stream-loading'要素が原因かもしれないことを発見します。しかし、なぜChromeで動作するのか分かりません。私は 'div.stream-loading'の高さを無視するので、Chromeでスクリプトを壊すこともあります。 – ayanamist
コードが予想通りに変更された高さがChromeによって報告されることがありますが、FFではわずかな遅延が生じることがあります。これはtwitter(FUBAR JSがたくさんある視力)でテストするのが大変なので、私はここで教育的な推測をしています。 –
これが原因である可能性があります。ありがとうございました。 – ayanamist