Stop_Loll, не за что. Только нюанс один, я забыл в примере обработку ошибок сделать, правильно будет вот так:
$.get('/index.html').done(function(html) {
var doc = new DOMParser().parseFromString(html, 'text/html');
var body = $('body', doc).html();
$('#news_links_array').html(body);
}).fail(function(xhr) {
console.log('При выполнении запроса произошла ошибка, детали ниже:');
console.dir(xhr);
});
Если запрос не удастся, то будет выполнена функция внутри .fail()
profesor08, то что контент-скрипт запустился раньше всех еще не дает возможности удалить остальные скрипты на странице классическими removeChild или innerHTML - чтобы их удалить таким способом надо для начала дождаться построения DOM, а при готовности документа автоматом уже запускаются скрипты со страницы и удалять их поздно.
Я поэтому и использую document.write в Chrome, что он дает возможность переписать страницу не дожидаясь события DOMContentLoaded.
P. S. К слову, решение проблемы для Firefox уже найдено и оно работает: https://qna.habr.com/q/1097974?e=12174508#clarific...
Теперь просто ждем когда автор комментария добавит его как ответ и я отмечу его решением.
profesor08, я в курсе про контент-скрипты и возможность выбирать, когда именно на каком этапе загрузки страницы их запускать. Но я по прежнему не понимаю, каким боком это являлось бы решением моего вопроса?
Не совсем понимаю, точнее совсем не понял. Что вы предлагаете? Просто удалить все теги script со страницы? Так это не сработает. Уже запущенные таймеры, обработчики, анонимные функции останутся работать, даже если удалить код, который их вызвал.
Aetae, на удивление память предков работает) Смог наконец при помощи него перезаписать страницу. Добавь свой комментарий как ответ, я его отмечу решением.
profesor08, залить на целевую страницу своего бота, бот автоматизирует рутинные операции на сайте и создает удобный лично мне интерфейс. На хроме никаких проблем с этим нет, но вот решил я переписать некоторые свои расширения под Firefox и столкнулся с такой проблемой.
P. S. Я почему свой код загружаю именно на страницу сайта - это чтобы при запросах на API этого сайта Referer был правильный и CORS не мешал. Однако это действительно только для Google Chrome. Я заметил что в Firefox можно спокойно редактировать исходящие и входящие заголовки, а значит по идее мне ни что не мешает запускать свой код не на целевой странице, а просто тупо с новой вкладки. Наверное так и буду делать, просто придется много чего переписать.
WbICHA, неа, не помогает. Все равно пишет, что это небезопасно и не дает. При этом если в консоли ручками вводить все норм, а вот через контент-скрипт уже хренушки.
Вы можете делать запросы в обход CORS. На своем сервере размещайте скрипт, который делает запрос за вас и отдает результат в браузер. Вместе с результатом запроса можно и заголовки ответа еще передавать и там уже будут видно наличие или отсутствие CORS ограничений.
WbICHA, да черт-побери. Мне лично доводилось учить пользоваться интернет-сервисами реально тупых людей и я усвоил урок - лучше немного медленный интерфейс, но чтобы все точно доходило, чем быстро и ступор. И речь не сколько про авторизация, а в принципе вообще про все. Например, надо что-то сохранить? Сохраняй и выводи надпись секунды на 2 - 5, чтобы тугой пользователь точно понял, что все сохранилось. Потому что, если очень быстро вывести галочку и убрать, то они нихуя не успевают осознать, а в случае с надписью даже не успевают прочитать.
WbICHA, ты не понимаешь, средний пользователь он тупой. Ему надо все надписи медленно выводить и желательно с анимацией, чтобы он успевал их осознавать и прочитать. Плавали, знаем, если делать все слишком быстро, самый тупой пользователь потом смотрит на интерфейс, как баран на новые ворота, просто не понимает и не успевает осознать, что только что произошло.
WbICHA, аякс запросы обычно быстрее проходят, чем успеваешь моргнуть, а вот если у кого-то интернет достаточно медленный, чтобы аякс запросы были прям ощутимо медленными... то пользователю в любом случае будет неудобно и некомфортно серфить хоть что ты делай.
Кстати, я вот сам при авторизации делаю обязательную 2 секундную анимацию будто сайт что-то там усиленно думает (а потом еще 2 секунды красивую галочку отрисовываю), даже если запрос обернулся за 100 - 200 мс. - это практически всегда смотрится естественнее и удобнее, чем мгновенная авторизация.
kiberlain, повторюсь, я бы сам не стал так уж сильно заморачиваться валидацией на стороне браузера, а просто выводил бы в браузере ответ сервера, а там уже будет написано, что именно не так с передаваемым данными.
WbICHA, для небольших и средних сайтов не будет никакой лишней нагрузки, точнее она будет такая маленькая, что плюнуть и растереть, двойная валидация это наоборот только лишняя работа и трата времени, а для высоконагруженных сайтов... того кто задает такой вопрос в принципе нельзя подпускать к созданию высоконагруженных сервисов.
Raul Abdullin, понимаете, вам вряд ли подойдут уже готовые существующие решения, а писать с нуля даже самый простейший движок это такой большой труд, что даже профи если будет только этим заниматься потратит на базовый функционал от полугода до года времени.
Если запрос не удастся, то будет выполнена функция внутри .fail()