Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 24.10.2019, 16:25
Интересующийся
Отправить личное сообщение для basil.veber Посмотреть профиль Найти все сообщения от basil.veber
 
Регистрация: 12.09.2019
Сообщений: 16

laimas, 50 на 50 )). В консоли ошибок нет. Запросы получают ответ 200 что все ок. Но ссылка не передается при открытии браузером новой вкладки, после клика по кнопке. В адресной строке просто about:blank
Ответить с цитированием
  #12 (permalink)  
Старый 24.10.2019, 16:28
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

На время сделать так:

console.log(loadedDocument)
//button.onclick = () => open(loadedDocument.querySelector('a.home-link').href)


Точно все есть в консоли во время когда вы жмахаете кнопку?
Ответить с цитированием
  #13 (permalink)  
Старый 24.10.2019, 16:33
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Ну и причина 50/50?

Добавьте перед button.onclick ..... эту строку button.disabled = false;, а самой кнопке пропишите атрибут disabled.

PS. Либо не выставляйте изначально кнопку, а добавляйте ее динамически:

//что изменить
.then(loadedDocument => {
    let button = document.createElement('button');
    button.textContent = 'Открыть';
    document.body.appendChild(button); //во что-то вставляем кнопку, здесь в конец всех элементов тела документа
    button.onclick = () => open(loadedDocument.querySelector('a.link-title').href);
}).catch(error => {
    console.log('Sorry');
});

//а эту строку удалить
const button = document.getElementById("my-button");

Последний раз редактировалось laimas, 24.10.2019 в 17:03.
Ответить с цитированием
  #14 (permalink)  
Старый 24.10.2019, 19:06
Интересующийся
Отправить личное сообщение для basil.veber Посмотреть профиль Найти все сообщения от basil.veber
 
Регистрация: 12.09.2019
Сообщений: 16

Цитата:
PS. Либо не выставляйте изначально кнопку, а добавляйте ее динамически:
Ситуация следующая:
При querySelector('a.link-title').href); - при клике по кнопке это

При querySelectorAll('a.link-title').href); - новая вкладка опять с about:blank

Класс у ссылки единственный на странице. Не понимаю почему не находит даже с указателями [0-10]

Последний раз редактировалось basil.veber, 24.10.2019 в 19:08.
Ответить с цитированием
  #15 (permalink)  
Старый 24.10.2019, 19:17
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Выполнить пост #12 и посмотреть что вы получаете, есть ли там ссылки нужные, мне же не ведомо что за страницу вы насилуете.
Ответить с цитированием
  #16 (permalink)  
Старый 24.10.2019, 19:46
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от basil.veber
Запросы получают ответ 200 что все ок. Но ссылка не передается при открытии браузером новой вкладки, после клика по кнопке.
Посмотрите, что скачало, может на том сайте выполнен хитрый алгоритм по предотвращению скачивания (и вам показывают капчу), может там переход на другую страницу, может там ссылка внутри <iframe>, может эти ссылки создаются программно, мой скрипт находит ссылку именно в исходном коде страницы, так как если бы вы нажали Ctrl+U, чтобы посмотреть исходный код.

Обратите внимание на то, что мой код скачивает исходный код страницы, и в нём ищет ссылку, если вам нужен поиск ссылки в отрисованной странице, где выполнены все скрипты, то вам стоит использовать, например, puppeteer

(Если вы делаете что-то исключительно для себя, то может вам поможет браузерное расширение Tampermonkey)

Сообщение от basil.veber
При querySelector('a.link-title').href); - при клике по кнопке это
Если document.links[1] не содержит ссылки, то querySelector('a.link-title') и подавно ничего не найдёт. Соответственно чтение свойства href у не существующего объекта вызовет ошибку! document.links содержит список всех ссылок на странице.

Сообщение от basil.veber
При querySelectorAll('a.link-title').href); - новая вкладка опять с about:blank
querySelectorAll('a.link-title') возвращает список элементов, даже если их нет (список пустой), вы читаете свойство href у самого списка элементов. Поэтому ошибки нет. Но у списка элементов нет свойства href, поэтому вы получаете undefined, который у вас открывается в виде about:blank

Вот как!
Ответить с цитированием
  #17 (permalink)  
Старый 24.10.2019, 21:15
Интересующийся
Отправить личное сообщение для basil.veber Посмотреть профиль Найти все сообщения от basil.veber
 
Регистрация: 12.09.2019
Сообщений: 16

Цитата:
Выполнить пост #12 и посмотреть что вы получаете, есть ли там ссылки нужные
Вот оно что:

По не ведомой мне причине код не весь. Хотя пробовал на пхп тянуть ссылку, то все ок. Но в связи с некоторыми "Но", пхп не подходит так как сайт имеет некоторые региональные особенности.
Ответить с цитированием
  #18 (permalink)  
Старый 24.10.2019, 21:22
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от basil.veber
сайт имеет некоторые региональные особенности
Интересно как региональные особенности могут влиять на серверный язык. Какой-то язык же есть на сервере, делайте запрос сервером и отдавайте клиенту.
Ответить с цитированием
  #19 (permalink)  
Старый 24.10.2019, 22:05
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от laimas
Интересно как региональные особенности могут влиять на серверный язык.
Так, что сервер ответит, например, на другом языке. (Читай про content negotiation)

Сообщение от basil.veber
сайт имеет некоторые региональные особенности.
Т. е. на сервере не получается отправить точно такой же запрос, какой был запрошен? Может не работать из-за геолокации. Так что за адрес? Было бы хорошо, если вы это указали, тогда можно указать конкретное решение хацкерской проблемы!

laimas, попросите адрес атакуемой страницы!

ЕЩЁ
Сообщение от laimas
Какой-то язык же есть на сервере, делайте запрос сервером
Так оно уже и так делается через сервер, интересно в чём отличия!

Последний раз редактировалось Malleys, 24.10.2019 в 22:11.
Ответить с цитированием
  #20 (permalink)  
Старый 25.10.2019, 06:12
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Malleys
интересно в чём отличия
В параметрах запроса уж если у него и впрямь получается. Вот только не надо гнать пурги про регион, ибо утверждение, что РНР велик и могуч, а другие только и способны на наскальные рисунки, это вообще полный бред.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как поместить iframe в угол страницы? xaknik Events/DOM/Window 4 31.07.2010 02:41
Как зайти с сервера на какой-либо url? bayah Общие вопросы Javascript 6 25.04.2010 19:05
Как разделять страницы при выводе отчета ilshat Events/DOM/Window 7 10.12.2009 10:24
как найти нужный объект? `p r o x y jQuery 2 05.05.2009 01:12
как сделать плавное затухание страницы magistr_bender Элементы интерфейса 1 18.03.2009 14:34