Нужно расширением для Chrome.
Помогите решить задачу:
Есть необходимость в расширении для Chrome, которое при активации будет менять часть кода страницы. Нужно поменять: href="/sw/Timesheet/TimesheetViev" На: href="/sw/Timesheet/TimesheetEdit" Или подскажите куда копать. В JS я профан. Задача одноразовая и досконально углубляться в JS пока нет времени. |
Берём базовое расширение:
https://javascript.ru/forum/css-html...tml#post470675 Код в content.js заменяем на Array.prototype.forEach.call( document.querySelectorAll('[href="/sw/Timesheet/TimesheetViev"]'), function(element){ element.setAttribute('href', '/sw/Timesheet/TimesheetEdit') } ); |
Спасибо, попробую.
|
Не удалось загрузить расширение из: ***
Invalid value for 'content_scripts[0].matches[0]': Missing scheme separator. { "name": "Test", "version": "1.0", "manifest_version": 2, "description": "Test", "content_scripts": [ { "matches": ["ip/sw/Timesheet*"], "js": ["content.js"] } ] } Повторить попытку |
В matches должен быть адрес сайта, очевидно же вроде...
https://developer.chrome.com/apps/match_patterns |
Очевидно, но в том то и дело, что сайт в локальной сети. И обращаюсь я к нему по ip.
К слову "matches": ["*://*ip/*"], тоже не прокатывает. |
Killigo, вы страницу открывали, ссылку на которую предоставил Aetae?
Цитата:
|
"matches": ["*://ip/*"], расширение загрузилось в chrome, но не заменяет строку.
|
Я дико извиняюсь, может это поможет делу:
Полностью строка выглядит так: <a class="btn btn-default btn-xs" data-ajax="true" data-ajax-loading="#progress" data-ajax-mode="replace" data-ajax-update="#resultsheets" href="/sw/Timesheet/TimesheetView?departmentId=17&GetProdSums=True">ПП</a> |
Killigo, в сообщении №2 этой темы в строке 2 перед равно ("=") звездочку добавьте.
И посмотрите на то, что вы в шапке написали и какой код предоставили. |
Я просто думал что можно менять часть кода html. По типу быстрой замены, т.е. изменение данных расширением перед выводом страницы на экран.
|
Цитата:
Killigo: Array.prototype.forEach.call( document.querySelectorAll('[href^="/sw/Timesheet/TimesheetViev"]'), function(element){ element.setAttribute('href', element.getAttribute('href').replace('Viev', 'Edit') ); } ); Цитата:
Можно запускать расширение примерно в начале вывода документа и отлавливать добавление узлов, но для данной задачи это не нужно. |
Цитата:
[href*="/Timesheet/TimesheetViev"] ps. момент запуска скрипта можно выбрать, опция "run_at". https://developer.chrome.com/extensions/content_scripts |
Цитата:
Цитата:
|
Почему-то не работает.
<a class="btn btn-default btn-xs" data-ajax="true" data-ajax-loading="#progress" data-ajax-mode="replace" data-ajax-update="#resultsheets" href="/sw/Timesheet/TimesheetView?departmentId=17&GetProdSums=True">ПП</a>- Это кнопка. Сейчас мне приходится в браузере нажимать F12 и менять руками Viev на Edit. Думал немного автоматизировать этот процесс. Чтобы при включении расширения и нажатии на кнопку выводилась страница изменения(Edit), а не отображения(View) данных. manifest.json: Код:
{ Код:
Array.prototype.forEach.call( |
Array.prototype.forEach.call( document.querySelectorAll('[href^="/sw/Timesheet/TimesheetVie*!*w*/!*"]'), function(element){ element.setAttribute('href', element.getAttribute('href').replace('Vie*!*w*/!*', 'Edit') ); } ); Вы в первом посте от руки писали? Зачем 0_о? |
Не работает. Расширение не надо как-то активировать?
|
|
Часовой пояс GMT +3, время: 22:21. |