Наконец-то нашел решение.
Проблема заключалась в том, что src1.lenght
дал значение 'undefined'
.Несмотря на то, что Алекс предложил источник этой проблемы, документация по W3C показала длину как допустимое свойство строки.
Однако сама проблема, очевидно, была вызвана другой обработкой значения 'undefined'
в src1.substring(src1.lastIndexOf('media/'), src1.lenght);
. Chrome и IE принял значение 'undefined'
просто как отсутствующее, поэтому строка была проанализирована до конца.Однако в FF функция подстроки не смогла полностью вернуть всю строку.
После изоляции этой проблемы я модифицировал скрипт, используя подстроку только с одним аргументом, так как на самом деле хотел, чтобы он анализировался доконец, поэтому второй параметр вообще не был нужен.
Ниже приведен окончательный код, который работает в Chrome + IE + FF.
$("img[src*='libraries/phpthumb/phpThumbYT.php']").each(function(){
var t=$(this);
var src1= t.attr('src'); // initial src
var old_src = src1.substring(src1.lastIndexOf('media/')); // extract old source attr
var media_id = old_src.substring(6,8); // extract media ID (directory name)
media_id = media_id.replace('/',''); // trim '/' from the end of media_id in case the ID is < 10
if ( old_src.indexOf("animation=1") != -1 )
{
t.hover(function(){
// on hover
$(this).attr('src', 'libraries/phpthumb/phpThumbYT.php?w=131&h=92&far=C&iar=1&sfn=3&zc=C&f=gif&src=http://slovoprekazdeho.sk/media/'+media_id+'/preview.gif');
}, function(){
// on rollout
$(this).attr('src', src1);
});
}
});