>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Какие отличия нормального JavaScript от встроенного в Mozilla? http://forum.mozilla-russia.org/viewtopic.php?id=57740 |
Почемучкин > 16-01-2013 19:18:04 |
Попробовал сделать простое расширение и столкнулся с тем, что есть несколько разных "стандартов": XUL, bootstrap.js, какие-то странные API и SDK, типа Addon Builder, которые только всё усложняют и делают через зад, имхо. Попытался сделать простой плагин в этом Add-on Builder-е (хотя он и добавляет полмегабайта мусора): оказалось, что такая стандартная функция JavaScript, как alert, отсутствует! Тогда это уже не совсем JavaScript, imho. Столкнулся также с тем, что большинство статей (если их сайты еще не умерли), рассказывают об устаревших API, а как мы знаем, версии Firefox меняются очень быстро и старые расширения и API быстро теряют совместимость с самыми современными версиями. Это все усложняет, так как старые руководства можно сказать протухают на глазах. |
hydrolizer > 17-01-2013 03:53:48 |
"Смешались в кучу кони, люди"... XUL bootstrap.js какие-то странные API и SDK, типа Addon Builder полмегабайта мусора что такая стандартная функция JavaScript, как alert, отсутствует! вместо var используется let Столкнулся также с тем, что большинство статей (если их сайты еще не умерли), рассказывают об устаревших API |
Почемучкин > 17-01-2013 09:36:25 |
> XUL не имеет к JS... >> полмегабайта мусора Вот с того и решил, что там полмегабайта неиспользующегося кода. Некоторые авторы расширений, кстати, так и поступают - удаляют все лишние файлы, оставляя всего несколько из всего этого "джетпака": я смотрел внутрь расширений. >> вместо var используется let Хм, интересно. Только в Firefox 15 почему-то не работает (на вебстраницах), хотя заявлено, что "JavaScript 1.7 support was introduced in Firefox 2." Почему же тогда не работает? >> Столкнулся также с тем, что большинство статей (если их сайты еще не умерли), рассказывают об устаревших API И английские статьи тоже устаревают, и в большинстве относятся к старым версиям, в том числе статьи с developer.mozilla.org. А такие краеугольные сайты, как XUL Planet, на который есть ссылки даже в документации и коде на Mozilla.org, уже даже умерли... Собственно, я так и думаю, что скорее всего нужное мне закопано на developer.mozilla.org, хотя возможно есть сторонние учебники (какие?) Учебники в данном случае лучше, так как слишком все запутано. Я хочу нормально разобраться, а не просто по шаблону из другого расширения лепить. > что такая стандартная функция JavaScript, как alert, отсутствует! Но в учебниках по JavaScript если это и упоминается, то вскользь. А здесь, при разработке "внутри" firefox, такие детали становятся очень важными. Поэтому я и обратился за помощью. Посоветуйте учебник по используемым в мозилле JS и другим технологиям. Но с последовательным изложением, желательно начиная с основ. |
hydrolizer > 17-01-2013 09:55:57 |
Почемучкин Только в Firefox 15 почему-то не работает (на вебстраницах), хотя заявлено, что "JavaScript 1.7 support was introduced in Firefox 2." Почему же тогда не работает? И английские статьи тоже устаревают, и в большинстве относятся к старым версиям, в том числе статьи с developer.mozilla.org. Посоветуйте учебник по используемому в mozilla JS и другим технологиям. Но с последовательным изложением, желательно начиная с основ. |
Почемучкин > 17-01-2013 10:07:36 |
hydrolizer >> Только в Firefox 15 почему-то не работает (на вебстраницах), хотя заявлено, что "JavaScript 1.7 support was introduced in Firefox 2." Почему же тогда не работает? скрытый текст Выдает ошибку: Error: SyntaxError: missing ; before statement; Line: 1, Column: 4 Error: SyntaxError: missing ; before statement Error: ReferenceError: let is not defined > Приведите пример Извините, но я не думал что мне это понадобится. Зато я запомнил, что не только в статьях с mozilla.org, но даже в коде джетпака есть ссылки на неработающие сайты и страницы. hydrolizer |
hydrolizer > 17-01-2013 12:31:06 |
Букмарклет я не думал что мне это понадобится мне больше нужно про использование API mozilla в JavaScript |
Lex1 > 17-01-2013 13:50:19 |
А если попробовать на html-странице, то получим ошибку: (при использовании "use strict";) - SyntaxError: let is a reserved identifier. |
Почемучкин > 17-01-2013 14:17:50 |
hydrolizer Я говорил о том, что в FF15 на обычной не-strict вебстранице "ReferenceError: let is not defined" hydrolizer За ссылку на XPCOM API спасибо. |
Lex1 > 17-01-2013 14:30:30 |
А вам ответили, что для работы let на странице нужно явно указывать версию js, т.к. иначе может сломаться существующий код. Выделить код Код:<script type="application/javascript;version=1.7"> let myvar=9; alert(myvar); </script>
17-01-2013 14:33:45 |
Почемучкин > 17-01-2013 14:48:49 |
> А вам ответили, что для работы let на странице нужно явно указывать версию js, т.к. иначе может сломаться существующий код. Хорошо, кое-что разъясняется - если встроить эту конструкцию с версией в страницу, в FF15 тоже работает. А как указать версию скрипта не создавая вебстраницу, а в текущей? Букмарклетом, в консоли, в Scratchpad'е, в Greasemonkey - хоть как-то? > С "use strict"; просто выдаётся более внятное сообщение об ошибке. Со strict страницами букмарклеты кажется вообще не работают. |
Lex1 > 17-01-2013 14:58:44 |
http://forum.mozilla-russia.org/viewtop … 84#p597284 Подробности по ссылке.
Если очень хочется: Выделить код Код:javascript: (function () { var script = document.createElement('script'); script.type = 'text/javascript;version=1.8'; script.appendChild(document.createTextNode("let myvar=9; alert(myvar);")); document.body.appendChild(script); })();
Строгий режим страниц и скриптов, это две разные вещи. Работоспособность скорее связана с https://bugzilla.mozilla.org/show_bug.cgi?id=680302#c28 17-01-2013 15:19:39
Оно и так работает. |