Как выделить текст элемента по клику на странице AMP? - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть веб-сайт AMP, на котором я хочу выбирать текст абзаца при каждом нажатии. Я использовал amp-script для добавления пользовательских JavaScript на страницу, вот код, который я использую, и он отлично работает на страницах без усилителя:

<amp-script width="700" height="200" script="custom-script">
            <div class="link_to_us_box">
              <p class="code" id="link_to_us_code">&lt;a href="<?php echo current_url();?>"&gt;<?php echo $page->title;?>&lt;/a&gt;</p>
            </div>
</amp-script>

<script id="custom-script" type="text/plain" target="amp-script">
  const txt = document.getElementById('link_to_us_code');
  console.log(txt);
  txt.addEventListener('click', () => {
    selectText('link_to_us_code');
  });

function selectText(node) {
    node = document.getElementById(node);

    if (document.body.createTextRange) {
        const range = document.body.createTextRange();
        range.moveToElementText(node);
        range.select();
    } else if (window.getSelection) {
        const selection = window.getSelection();
        const range = document.createRange();
        range.selectNodeContents(node);
        selection.removeAllRanges();
        selection.addRange(range);
    } else {
        console.warn("Could not select text in node: Unsupported browser.");
    }
}
</script>

Он всегда идет в остальной части, ни document.body.createTextRange ни window.getSelection работает. Пожалуйста помоги. До благодарности за любую помощь!

...