У меня есть этот URL:Greasemonkey скрипт для удаления параметров из URL
http://website.com/wp-content/uploads/2014/11/this-is-an-image_0120(pp_w820_h548).jpg
Я хочу удалить параметр из URL, чтобы выглядеть следующим образом:
http://website.com/wp-content/uploads/2014/11/this-is-an-image_0120.jpg
Как можно с Greasemonkey?
var links = document.getElementsByTagName("a");
for(var i = 0, l = links.length; i < l; i++) {
var elements = links[i];
elements.innerHTML = document.body.innerHTML.replace(/(pp_w820_h548)/gi, '');
}
Я хочу также, чтобы номера ширины и высоты были неизвестными переменными. Иногда изображения являются png, поэтому удаление всего после (и добавление «.jpg» снова до конца не лучшее решение.
Я хотел бы настроить таргетинг на элемент img, а не на a. ., а не ссылку
Также необходимо стр быть там, потому что я только хочу, чтобы удалить на ProPhoto WP блогов
Итак, вот оно:.
var links = document.getElementsByTagName("img");
for(var i = 0, l = links.length; i < l; i++) {
var images = links[i];
images.src= images.src.replace(/\(pp_w\d+_h\d+\)/gi, '');
}
UPDATE
Сценарий работает только с изображениями, близкими к окну просмотра. Lazyloaded элементы на странице все еще используют плюсовые строки в url.
Возможно ли, что с помощью Greasemonkey для физического изменения HTML, а не только в DOM?
Что касается регулярного выражения: вам нужно сбежать '(' и ')'. цифры записываются как '[0-9] +' Escaping выполняются с помощью обратного слэша ('\') '\ (escape-код parenthese'. – andlrc
@ user1442219 что вы хотите изменить html не только dom? html * это * dom.Это заменяет источники изображений, которые есть с самого начала, правильно? Вы всегда можете добавить тайм-аут в качестве самого простого решения. –