Путь 1 :
Экспортируйте веб-страницу, которая использует код, на ваш диск (я точно знаю, что Opera, Firefox и Chrome поддерживают это - ctrl + s - обязательно сохраните весь контент). Они загружают весь связанный контент (CSS, скрипты, изображения) и фиксируют URL-адреса, чтобы загруженные загружались. Затем замените файл javascript, который вы хотите отладить, и откройте загруженный html в браузере, скажите firefox с firebug и начните отладку. Это должно работать, если страница не сильно отлажена.
Путь 2 :
Мне удалось заставить это работать в Google Chrome ( v8.0.552.215 - мне нужно обновить BTW) на странице, где нет jQuery (например, w3c .org ) - попробуйте сами, просто скопируйте и вставьте его в адресную строку и подождите, пока страница не исчезнет:)
javascript:(eval("var script=document.createElement('script');script.src='http://code.jquery.com/jquery-1.4.4.min.js'; document.getElementsByTagName('head')[0].appendChild(script);window.setTimeout(\"$('body').fadeOut(5000);\", 2000)"));
Сценарий отображается в разделе сценариев консоли ( CTRL + SHIFT + J ), и вы можете установить точки останова. Так что-то вроде этого должно работать (не стесняйтесь изменять):
javascript:(eval("for (var allsuspects=document.getElementsByTagName('script'), i=allsuspects.length, oldfile=prompt('Remove script src:'); oldfile && i>=0; i--) if (allsuspects[i] && allsuspects[i].getAttribute('src')!=null && allsuspects[i].getAttribute('src').indexOf(oldfile)!=-1) allsuspects[i].parentNode.removeChild(allsuspects[i]);var script=document.createElement('script');script.src = prompt('Inject script src:');document.getElementsByTagName('head')[0].appendChild(script);"));
Сценарий расширен и объяснен:
for (var allsuspects=document.getElementsByTagName('script'), i=allsuspects.length, oldfile=prompt('Remove script src:'); oldfile && i>=0; i--)
if (allsuspects[i] && allsuspects[i].getAttribute('src')!=null && allsuspects[i].getAttribute('src').indexOf(oldfile)!=-1)
allsuspects[i].parentNode.removeChild(allsuspects[i]); // remove old script
var script=document.createElement('script'); // inject new script
script.src = prompt('Inject script src:');
document.getElementsByTagName('head')[0].appendChild(script);
Скрипт работает только в Chrome (может, в Safari тоже?). Я пробовал Firefox, IE и Opera, но ни один из них не работал. Я полагаю, что также может быть проблема, если файл недоступен онлайн (если вы используете, вы используете 'file: //').
ОБНОВЛЕНИЕ : также работает в Chrome v8.0.552.224