#javascript #google-chrome #url #browser #bookmarklet
Вопрос:
Я хотел бы создать букмарклет, который добавляет URL-адрес текущей страницы к другому предопределенному URL-адресу.
javascript:(function(){location.href='example.com/u=' encodeURIComponent(location.href)}());
Однако возвращенный URL-адрес не закодирован, но когда я попробовал encodeURIComponent(encodeURIComponent(location.href))
, это сработало. Я не понимаю, почему удвоение кодового компонента делает его другим?
Ответ №1:
Попробуйте это:
var href = (a) => {return 'example.com/u=' encodeURIComponent(a)}
и позвоните href
, чтобы получить закодированный URL-адрес.
var encoded_url = href(location.href)
Комментарии:
1. На самом деле я не хочу усложнять ситуацию, просто чтобы понять, почему мне нужно было удвоить «кодировочный компонент», чтобы заставить его работать.
2. Не уверен насчет этого, я работаю с одиночкой
encodeURIComponent
. Можете ли вы добавить немного больше информации о том, как вы создаете свой букмарклет?3. На самом деле я использую букмарклет, упомянутый здесь: youtube4kdownloader.com/en5/bookmarklet.html и посмотрите, как они используют double
encodeURIComponent
. Это сработало, когда вы оставили его таким, но не тогда, когда вы его удалилиencodeURIComponent
. Вы можете использовать этот букмарклет в видео на YouTube, чтобы понять, что я имею в виду.