Я пытаюсь внести изменения в официальный букмарклет Yourls, но это не работает, я уверен, что это глупо, но у меня ограниченные знания.
Код такой:
javascript:(function(){ var d=document, sc=d.createElement('script'), l=d.location.href, enc=encodeURIComponent, ups=l.match(/^[a-zA-Z0-9\+\.-]+:(//)?/)[0], ur=l.split(new RegExp(ups))[1], ups=ups.split(/\:/), p='?up='+enc(ups[0]+':')+'&us='+enc(ups[1])+'&ur='+enc(ur)+'&t='+enc(d.title); window.yourls_callback=function(r){ if (r.short_url){ prompt(r.message,r.short_url);}else{ alert('An error occured: '+r.message);}}; sc.src='https://xxxxxxxxx.com/xxx/admin/index.php'+p+'&jsonp=yourls'; void(d.body.appendChild(sc));})();
Я хочу изменить URL-адрес, полученный из браузера, добавив предыдущий код, например:
javascript:(function(){ var d=document, sc=d.createElement('script'), l='https://xxxxxxxxxxxx'+d.location.href, enc=encodeURIComponent, ups=l.match(/^[a-zA-Z0-9\+\.-]+:(//)?/)[0], ur=l.split(new RegExp(ups))[1], ups=ups.split(/\:/), p='?up='+enc(ups[0]+':')+'&us='+enc(ups[1])+'&ur='+enc(ur)+'&t='+enc(d.title); window.yourls_callback=function(r){ if (r.short_url){ prompt(r.message,r.short_url);}else{ alert('An error occured: '+r.message);}}; sc.src='https://xxxxxxxxx.com/xxx/admin/index.php'+p+'&jsonp=yourls'; void(d.body.appendChild(sc));})();
заменены l = d.location.href к l = 'https: // xxxxxxxxxxxx' + d.location.href
Но URL-адрес, который поступает в YOURLS, - это только https: // xxxxxxxxxxxx, + d.location.href не добавляется.
Любая помощь будет оценена, спасибо.
Спасибо, введенный URL-адрес выглядит примерно так: code 'https://test.sample.com/link.php?number=9999&url='+d.location.href Результат в виде обычного текста: code https://test.sample.com/link.php?number=9999&url=https://url.website.com/sub/main Я думаю, проблема в двух https в одной строке
Я создал локальную установку Yourls, чтобы отследить проблему. Я почти уверен, что вы столкнулись с неспособностью парсера правильно экранировать URI. Это ошибка, в которой было программное обеспечение с момента его создания, и по состоянию на 2019 год она была проблема, известная более 6 лет. Я рекомендую вам использовать другое средство сокращения URL-адресов.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Думаю, я могу понять, о чем вы спрашиваете, но вместо использования xxxxxxxxxxxx отформатируйте свой вопрос более понятным примером. Возможно: «URL-адрес, который я хочу добавить, - это example.com/secret-address.php?action=more-secrets, но когда я кодирую так, как я его модифицировал, YOURLS.org использует только example.com/secret-address.php».