JavaScript - Откройте URL с помощью window.open () и выберите все на открытой странице. - PullRequest
0 голосов
/ 06 ноября 2019

Я использую этот код, чтобы открыть URL в новом окне. Можно ли сделать выбор всего, как (CTRL + A делает), чтобы выбрать возвращать определенный текст?

Я пытаюсь это сделать, но мне не удалось

Например,давайте предположим, что если я использовал URL google.com, и я хочу выделить текст в нижнем колонтитуле. Как "Конфиденциальность", "Условия" ... и т. Д.

  var newWindow = window.open("URL HERE", '_blank', "toolbar=yes,scrollbars=yes,resizable=yes,width=800,height=800");
  var range = newWindow.document.createRange();
  range.selectNode(newWindow.document.getElementsClassName('msg-info')[0]);
  newWindow.getSelection().addRange(range);
  newWindow.select();

1 Ответ

0 голосов
/ 06 ноября 2019

Если страница, которую вы открываете, не имеет того же источника, что и страница, на которой вы это делаете, вы не можете этого сделать. У вас нет доступа к другой странице вообще. (То же происхождение = та же схема [http, https], тот же хост, тот же порт.) Это связано с Одинаковой политикой происхождения .


Если страница находится в том же источнике, то вам нужно как минимум дождаться загрузки страницы через обработчик load или обработчик DOMContentLoaded:

var newWindow = window.open("URL HERE", '_blank', "toolbar=yes,scrollbars=yes,resizable=yes,width=800,height=800");
newWindow.addEventListener("DOMContentLoaded", function() {
    var range = newWindow.document.createRange();
    range.selectNode(newWindow.document.getElementsByClassName('msg-info')[0]);
    newWindow.getSelection().addRange(range);
    newWindow.select();
});

(обратите внимание, чтоэто getElementsByClassName, а не getElementsClassName. Или используйте newWindow.document.querySelector('.msg-info').)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...