Как получть нужный url href cо страницы другого домена
Подскажите пожалуйста решение.
Как получить c site.ru/page.html 2-ю по счету ссылку и повесить ее на <button onclick="url">Открыть</button> на сайте site.com/page.html где будет размещена эта кнопка и этот скрипт. |
На сайте site.ru/page.html добавьте заголовок Access-Control-Allow-Origin: site.com
На сайте site.com/page.htm разместите эту кнопку и этот скрипт... <button id="my-button">Открыть</button> <script> const button = document.getElementById("my-button"); fetch("http://site.ru/page.html").then(async response => { const parser = new DOMParser(); return parser.parseFromString(await response.text(), "text/html"); }).then(loadedDocument => { button.onclick = () => open(loadedDocument.links[1].href) }).catch(error => { button.remove(); }); </script> |
Malleys,
Спасибо за ответ. Но есть один момент. Сайт site.ru/page.html мне не принадлежит с которого хочу получить ссылку, поэтому заголовок прописать нет возможности. А будет это работать если на своем сайте я сначала выведу страницу чужого через фрейм, а потом уже обращусь через скрипт к ней? |
Цитата:
Например, тогда можно взять вторую ссылку с Яндекса... <button id="my-button">Открыть</button> <script> const button = document.getElementById("my-button"); fetch("https://corsproxy.glitch.me/https://yandex.ru/").then(async response => { const parser = new DOMParser(); return parser.parseFromString(await response.text(), "text/html"); }).then(loadedDocument => { button.onclick = () => open(loadedDocument.links[1].href) }).catch(error => { button.remove(); }); </script> |
Malleys,
Приведенный пример вами и некоторые другие работают, а вот с нужной мне страницей скрипт что-то не хочет. В консоли браузера вот это после клика по кнопке: Цитата:
Видео нужно более точная настройка. Например по классу "link-title" атрибута "а" (<a class="link-title" href="" target=_top title=""><span></span></a>) |
У а потому что берётся вторая по счёту ссылка которая на странице может и не быть.
|
Malleys, перепробовал от links[1] до links[10]. Но на выходе тот же результат.
Подскажите пожалуйста что на что заменить чтобы он тянул ссылку из Цитата:
|
Заменить
button.onclick = () => open(loadedDocument.links[1].href) на button.onclick = () => open(loadedDocument.querySelector('a.link-title').href) это будет первая ссылка с таким именем класса из имеющихся на странице. Если надо иную, то querySelectorAll('a.link-title')[нужный индекс] |
laimas, работает. Но по какой-то причине ссылка не передается. Открыается пустая вкладка about:blank
|
Цитата:
|
Часовой пояс GMT +3, время: 16:19. |