Сценарии Greasemonkey работали в Firefox 16.0.2, но не в версии 17.0.1 или новее?
У меня есть старые пользовательские скрипты с jQuery, которые отлично работают в Firefox 16, но перестали работать с выпуском Firefox 17.
Итак, я использовал версию 16.0.2 до сегодняшнего дня, когда я пытался обновить до 18, и та же проблема сохраняется. Сначала я подумал, что это может быть Greasemonkey, и безуспешно попробовал версию 1.6 и надстройку Scriptish. Поэтому я попытался обновить версию jQuery, но не нашел решения. Это не один скрипт, это все они с любым кодом jQuery. Также об ошибках на консоли не сообщается.
Кто-нибудь знает, что происходит?
Некоторые ошибки, о которых сообщает консоль firebug:
o.attachEvent("on"+e, h);
от:
window.addListener=function(o, e, h){
try{
o.attachEvent("on"+e, h);
}catch(a){
o.addEventListener(e, h, false);
}
}
Еще одна ошибка в другом скрипте
GM_addStyle ( (<><![CDATA[
от:
GM_addStyle ( (<><![CDATA[
#dtl {
position: absolute;
top: 0;
right: 0;
}
#dtl iframe {
width: 950;
height: 680;
border: none;
}
]]></>).toString () );
1 ответ
jQuery и Greasemonkey отлично работают в Firefox 17 и 18 ( при условии, что песочница активна); Это не проблема.
- Опубликовать и или ссылку на скрипт, который не удается!
- Опубликовать SSCCE.
- Следуйте этому контрольному списку (и руководству "Как спросить").
Единственная важная вещь, которая изменилась с FF 17, которая затронула многие скрипты Greasemonkey, это то, что Firefox прекратил поддержку E4X.
С E4X мы могли бы использовать CDATA
для создания отличных многострочных строк, например:
GM_addStyle ( (<><![CDATA[
#someNodeID {
position: fixed;
top: 0;
right: 0;
}
]]></>).toString () );
Но теперь, когда E4X больше не поддерживается, мы должны реорганизовать каждый бит кода, который использовался CDATA
, чтобы использовать Javascript строки escape (\
), вот так:
GM_addStyle ( ' \
#someNodeID { \
position: fixed; \
top: 0; \
right: 0; \
} \
' );
При использовании этого побега, вы должны обратить особое внимание на то, как вы смешиваете '
а также "
цитаты.