+ 1 к @rampion предложениям.Я хотел выполнить простое перенаправление, хотя поиск элементов на странице был не очень полезен, так как я не хочу перенаправлять пользователя без присмотра.
В любом случае, я использовал этот код для установки прослушивателя, который перенаправлял бы в случае необходимостипосле того, как пользователь нажмет на ссылку с конкретным href
:
if (document.addEventListener ){
document.addEventListener("click", function(event) {
var targetElement = event.target || event.srcElement;
// TODO: support deeper search for parent element with a href attribute
var href = targetElement.getAttribute('href') || targetElement.parentElement.getAttribute('href') ;
if (href && videoURLRe.test(href)) {
var target = "";
if (href.indexOf("/") == 0) {
target = "https://m.facebook.com" + href
} else {
target = href.replace("www.facebook", "m.facebook");
}
window.location.assign(target);
}
}, true);
}
Работает довольно аккуратно.Мне пришлось вычислить правильный третий параметр addEventListener, чтобы мой слушатель выполнялся раньше других.
Для полного сценария посмотрите на https://greasyfork.org/en/scripts/8176-switch-to-mobile-version-on-facebook-video-page
Я не смог найти какой-либо способ надежно обнаружить изменения URLнезависимо от метода, используемого веб-сайтом для изменения этого URL.@ Andy-e подход кажется удивительным, но по какой-то причине у меня не работаетВозможно, я не смог сделать скрипт @grant
должным образом.