Как скопировать в буфер обмена с js на блоггер, элементы с неопределенными идентификаторами - PullRequest
0 голосов
/ 10 ноября 2019

Я хочу создать кнопку под всеми комментариями в моем блоге, чтобы скопировать в буфер обмена текущий комментарий, который хочет посетитель.

Мне удалось разместить кнопку в каждом комментарии и скопировать в буфер обмена. любой идентификатор уже определен в коде страницы.

Проблема в том, что идентификаторы комментариев не определяются в коде страницы, но они определяют отжимания каждый раз, когда вы загружаете страницу выражением блоггера. на лету. (см. код ниже)

Однако, если я проверю источник страницы с помощью инструментов браузера, выберу идентификатор конкретного комментария и поместу его в код ниже, код работает нормально, но я хочу, чтобычтобы сделать это автоматически, страница сама для каждого комментария, который выбирает посетитель ... если я не уверен, пожалуйста, скажите мне, чтобы объяснить дальше.

/*this is the link that all comments display at the end*/
<a onclick='CopyToClipboard(/*copying to clipboard any element determined by id i put in here*/)'>Copy comment</a>

/*this is the function it calls on click*/
<script>
//<![CDATA[

 function CopyToClipboard(containerid) {

    if (window.getSelection) {
        if (window.getSelection().empty) { // Chrome
            window.getSelection().empty();
        } else if (window.getSelection().removeAllRanges) { // Firefox
            window.getSelection().removeAllRanges();
        }
    } else if (document.selection) { // IE?
        document.selection.empty();
    }

    if (document.selection) {
        var range = document.body.createTextRange();
        range.moveToElementText(document.getElementById(containerid));
        range.select().createTextRange();
        document.execCommand("copy");
    } else if (window.getSelection) {
        var range = document.createRange();
        range.selectNode(document.getElementById(containerid));
        window.getSelection().addRange(range);
        document.execCommand("copy");
    }
}
//]]> 
</script>





/*and this is how the id of any comment is determined, this is a default blogger thing*/

<dd class='comment-body' expr:id='data:widget.instanceId + data:comment.cmtBodyIdPostfix'>
...