Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.11.2022, 20:35
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

Поисковая строка к url с blob:
Делаю такую вещь
<!doctype html>
<html>
<head>
</head>
<body>
my page
<script>
let dopp = `<!doctype html>
	<html>
	<head>
	</head>
	<body>
	new page
	</body>
	</html>`;
let blob = new Blob([dopp], {type : 'text/html'});
let url  = URL.createObjectURL(blob);
let ea = document.createElement('a');
ea.target = '_blank_';
ea.href = url;
ea.click();
</script>
</body>
</html>


Теперь хочу в стр 20 ea.href = url + '?search.str';
Не работает

<!doctype html>
<html>
<head>
</head>
<body>
my page
<script>
let dopp = `<!doctype html>
	<html>
	<head>
	</head>
	<body>
	new page
	</body>
	</html>`;
let blob = new Blob([dopp], {type : 'text/html'});
let url  = URL.createObjectURL(blob);
let ea = document.createElement('a');
ea.target = '_blank_';
ea.href = url + '?search.str';
ea.click();
</script>
</body>
</html>


Как ее туда прикрутить?

Последний раз редактировалось voraa, 23.11.2022 в 22:52.
Ответить с цитированием
  #2 (permalink)  
Старый 24.11.2022, 02:45
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

странная хотелка. А для чего там этот '?search.str' ?

URL.createObjectURL добавляет блоб в специальный словарик (Map) где-то внутри браузера, и возвращает строковый ключ этой записи. URL.revokeObjectURL удаляет запись. Ключ с любой строковой добавкой не имеет смысла.

В хроме ключ выглядит вот так (содержит origin+guid):
"blob:https://lookatcode.com/ba0d5456-e9c8-4d2b-bc62-92015f66a5c8"

то есть это не http-адрес, а "черт знает что", и никакого поискового параметра там быть не может.

Последний раз редактировалось Alexandroppolus, 24.11.2022 в 02:58.
Ответить с цитированием
  #3 (permalink)  
Старый 24.11.2022, 07:35
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

Сообщение от Alexandroppolus
А для чего там этот '?search.str' ?
Что бы сформированная и открытая страница могла его получить и как то обработать.
Сообщение от Alexandroppolus
В хроме ключ выглядит вот так (содержит origin+guid):
Ну я думал, что эта строка добавится и будет доступна внутри странице через new URL(location).search

Там собственно есть URL(location).protocol = 'blob:'
URL(location).origin = "https://lookatcode.com"
URL(location).path = "https://lookatcode.com/ba0d5456-e9c8-4d2b-bc62-92015f66a5c8"

Почему бы не быть еще и URL(location).search?

Последний раз редактировалось voraa, 24.11.2022 в 07:57.
Ответить с цитированием
  #4 (permalink)  
Старый 24.11.2022, 08:38
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

Видимо, там всё что после орджина, считается гуидом..
Просто добавь скрипт с константой внутри тега head формируемого документа.
Ответить с цитированием
  #5 (permalink)  
Старый 24.11.2022, 08:47
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

Самое интересное, что хеш (якорь) совершенно спокойно работает
ea.href = url + '#a1';
Нормально срабатывает. И даже переходит к элементу с id="a1", если он есть.
Ответить с цитированием
  #6 (permalink)  
Старый 24.11.2022, 08:56
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

Причем
ea.href = url + '#h?search.str';
тоже работает, но
URL(location).hash = "#h?search.str"

Или по правилам URL хеш должен идти после строки запроса?
Ответить с цитированием
  #7 (permalink)  
Старый 24.11.2022, 08:58
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

Сообщение от Белый шум
в других не проверял:
В файрфоксе тоже работает.
Сафари у меня нет.
Ответить с цитированием
  #8 (permalink)  
Старый 24.11.2022, 09:04
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

Да, хэш всегда в конце. Браузер сначала отрезает решетку и всё что после неё, а потом уже смотрит что там за урл и как с ним работать.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Плавающий блок, замирающий над определенным элементом. Как поправить? ozoro jQuery 4 02.02.2020 00:27
Создать Blob url Samsam Общие вопросы Javascript 1 28.05.2018 10:31
Combobox + nominatim поисковая строка Olezha28 ExtJS 0 27.03.2017 13:14
Предполагается наличие ';' в IE7- FINoM (X)HTML/CSS 5 25.08.2012 16:05
Водяной знак на fancybox bobrina Общие вопросы Javascript 1 03.06.2011 21:11