Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 14.03.2015
Сообщений: 4

Как заставить этот скрипт работать на постоянной основе?

12.12.2019, 04:14. Показов 3214. Ответов 3

Студворк — интернет-сервис помощи студентам
Ниже приведенный код, если его использовать в консоли google chrome, позволяет сделать кнопку "Скопировать" для сайта вконтакте.
(данная кнопка копирует в буфер ссылки на исходные картинки из поста)



Каким образом сделать так, чтобы эта кнопка Скопировать была всегда и не приходилось каждый раз открывать консоль и запускать этот код?
Для google chrome есть расширение Tampermonkey оно позволяет добавлять скрипты. Если можно так сделать помогите поправить код, чтобы всё работало. Не понимаю просто ничего в этом.



JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
id = $('div[id^="post"]').getAttribute('id');
post = document.getElementById(id);
wallText = post.getElementsByClassName('wall_text');
tmpObj = wallText[0].getElementsByTagName('a');
str = '';
for( x = 0; x < tmpObj.length; x++ ){
   str+= JSON.parse('{"a":'+tmpObj[x].getAttribute('onclick').replace(/.*(\{.*\}).*/, '$1').replace(/&quot;/gm, '"').replace(/\\\//gm, '/')).a.y+" \r\n";
}
section = post.getElementsByClassName('like_btns')[0];
 
tag = document.createElement('textarea');
tag.id = 'my_text';
tag.style = 'position: absolute; left: 99999px; display:block; width:0px; height:0px;';
section.appendChild(tag);
document.getElementById('my_text').innerHTML = str;
 
tag = document.createElement('button');
tag.setAttribute("onclick", "my_text.select(); document.execCommand('copy');");
tag.innerHTML = 'Скопировать';
section.appendChild(tag);
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.12.2019, 04:14
Ответы с готовыми решениями:

Как заставить работать скрипт
Добрый день! Имеется скрипт проверки совместимости версии iOS для репозитория Cydia. const VERSION_CHECK_SUPPORTED=&quot;Ваша версия iOS...

Скрипт с картинками не могу заставить работать
&lt;html&gt; &lt;head&gt; &lt;title&gt;Автоматическая циклическая смена картинок&lt;/title&gt; &lt;/head&gt; &lt;script language=&quot;JavaScript&quot;&gt; i=0; ...

Как заставить скрипт работать?
Пытаюсь разобраться в основах JS и JQ, но даже азы даются с трудом. Как заставить данный код работать? (при нажатии фон должен меняться...

3
380 / 230 / 115
Регистрация: 22.11.2016
Сообщений: 379
12.12.2019, 13:19
Лучший ответ Сообщение было отмечено bestpm как решение

Решение

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        ^https://vk.com/wall-*
// @grant        none
// ==/UserScript==
    'use strict';
    window.onload = function() {
        let id = document.querySelector('div[id^="post"]').getAttribute('id');
        let post = document.getElementById(id);
        let wallText = post.getElementsByClassName('wall_text');
        let tmpObj = wallText[0].getElementsByTagName('a');
        let str = '';
        for(let x = 0; x < tmpObj.length; x++ ){
            str+= JSON.parse('{"a":'+tmpObj[x].getAttribute('onclick').replace(/.*(\{.*\}).*/, '$1').replace(/&quot;/gm, '"').replace(/\\\//gm, '/')).a.y+" \r\n";
        }
        let section = post.getElementsByClassName('like_btns')[0];
 
        let tag = document.createElement('textarea');
        tag.id = 'my_text';
        tag.style = 'position: absolute; left: 99999px; display:block; width:0px; height:0px;';
        section.appendChild(tag);
        document.getElementById('my_text').innerHTML = str;
 
        tag = document.createElement('button');
        tag.setAttribute("onclick", "my_text.select(); document.execCommand('copy');");
        tag.innerHTML = 'Скопировать';
        section.appendChild(tag);
    };
1
0 / 0 / 0
Регистрация: 14.03.2015
Сообщений: 4
13.12.2019, 05:29  [ТС]
@fixeri, спасибо Вам.

Не подскажете в чем проблема? Иногда код не срабатывает и дает ссылки как undefined

Например из этих постов:
https://vk.com/wall-64382253_348785
https://vk.com/wall-109125388_265840
https://vk.com/wall-51016572_1246948

Можно ли что-то с этим сделать?


Получается скопировать только лишь так:
0
380 / 230 / 115
Регистрация: 22.11.2016
Сообщений: 379
13.12.2019, 11:28
Лучший ответ Сообщение было отмечено bestpm как решение

Решение

Где undefined - там нет значения y

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        ^https://vk.com/wall-*
// @grant        none
// ==/UserScript==
    'use strict';
    window.onload = function() {
        let id = document.querySelector('div[id^="post"]').getAttribute('id');
        let post = document.getElementById(id);
        let wallText = post.getElementsByClassName('wall_text');
        let tmpObj = wallText[0].getElementsByTagName('a');
        let str = '';
        for(let i = 0; i < tmpObj.length; i++ ){
            let parsedJSON = JSON.parse(/{"temp":(.*),"queue"/.exec(tmpObj[i].getAttribute("onclick"))[1]);
            if (parsedJSON.y !== undefined) {
                str += `${parsedJSON.y}\n`;
            } else {
                str += `${parsedJSON.x}\n`;
            }
        }
        let section = post.getElementsByClassName('like_btns')[0];
 
        let tag = document.createElement('textarea');
        tag.id = 'my_text';
        tag.style = 'position: absolute; left: 99999px; display:block; width:0px; height:0px;';
        section.appendChild(tag);
        document.getElementById('my_text').innerHTML = str;
 
        let btn = document.createElement('button');
        btn.setAttribute("onclick", "my_text.select(); document.execCommand('copy');");
        btn.innerHTML = 'Скопировать';
        section.appendChild(btn);
    };
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.12.2019, 11:28
Помогаю со студенческими работами здесь

Как заставить jquery-скрипт работать при перезагрузке контента AJAX-ом?
Добрый день! Вопрос следующий. У меня есть скрипт JQuery, который добавляет определенный код после каждого 4-го div таким вот образом:. ...

Заставить работать скрипт без интернета
Кто знает как изменить вот такую строчку в коде &lt;script type=&quot;text/javascript&quot;...

Заставить скрипт работать на кажлый элемент отдельно
Я уже сделал скрипт, который должен плавно закрашивать фон менюшки. Но есть проблема. При наведении на один из пунктов закрашиваются все,...

Как заставить работать этот код?
Здравствуйте, помогите разобраться с ошибкой. Это первая моя программа . Сильно не ругайтесь. Программа из текстового документа получает...

как заставить этот код работать?)
for(h=1; h&lt;=30000; h++){URL GOTO=http://site/allusers; TAG POS=&quot;.h.&quot; TYPE=DIV ATTR=ID:add}


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru