Я написал usercript и запустил его в Greasemonkey 0.9.13.
Если я удаляю единственный блок try... catch
(строка 54-66), но сохраняю код внутри него, он выдаст исключения, как показано ниже:
необработанное исключение: [Исключение ... Код "Операция не поддерживается":
Результат "9": расположение "0x80530009 (NS_ERROR_DOM_NOT_SUPPORTED_ERR)":
"resource: //greasemonkey/runScript.js Строка: 29"]
Однако раздетые скрипты хорошо работают в Chrome без каких-либо проблем.
Однако, он будет НЕ печатать что-либо в консоли, что означает, что коды в блоке try не выдают исключение, если заключены в блок try.
Ребята, скажите, почему это работает?
Это фрагмент кода из этого связанного источника :
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);
}