Полезная информация

На IRC-канале #mozilla-ru можно получить техническую консультацию онлайн и, конечно же, порцию общения.

№117-09-2015 12:27:24

amid525
Участник
 
Группа: Members
Зарегистрирован: 19-08-2014
Сообщений: 330
UA: Firefox 31.0

Снять защиту от копирования текста.

Имеется кнопка Allow copy/context menu 

скрытый текст

Выделить код

Код:

(function(w){
        var arr = ['contextmenu','copy','cut','paste','mousedown','mouseup','beforeunload','beforeprint'];
        for(var i = 0, x; x = arr[i]; i++){
            if(w['on' + x])w['on' + x] = null;
            w.addEventListener(x, function(e){e.stopPropagation()}, true);
        };
        for(var j = 0, f; f = w.frames[j]; j++){try{arguments.callee(f)}catch(e){}}
})(content


изображение
скрытый текст
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACHElEQVR4AZXBT0hTARwH8N+b/yCXeSiYeGh0cYQQBE5UaOFpUw8mXrooKIiSKJtuOQcbW2ksWHP0TDSnBp1Mx0BiQWMN3J/3hnO9ScyYGmoGgiShjJbDb5eCCLPt86HfDg93SxYXX7QbDPety8tCMeXq9PS4eGnpwRO5XAS1Wu/g+Z18ylUy+byvq4tQVVUAo9Fq5fldhnKxtjajXlgQwWQiVFdfgMViN/P8dh5lSxCcmnCYQTRK6Okh1NSIYTY/fhQKbRdSNjjOqQmFGBwcEKamCB0dhLq6QlgstofB4Kd8+p9AwKnx+RhkMoRwmOBwEIaGCEqlGDabzRKLbRXReYJBp8bjYQAQUimCXk/Qagnd3YSKCkJvr3qC59+XxeOCiM7CcTOaSIRBOk2YnSVUVhIkEhHq68sgk13KSKXS7xMT0/c2NjZK6Szr69Nqj4dgNBKam6+BZQkqFYO2Nt0Pt/td++QkK+e4kDQaXc2nvwGpvFjMpmtoIDQ2tn50udymnZ3LKZeLUFsrT3u9m9fpPOn015K5uVFWobhxwrK+W8nksVgQ2jZXVhi0thIGBoyOQGDrIv3L3t5WAceFb3u94Tv0Szz+eiASkZzMzxNaWmTfRkZeKigXicSHq37/3c9+P6Gzk9Dfr50ZH38loWzt72/nJRJvDcPDV1BeTlAqVZs63ehNysXR0Zciu/3Z06am9jeDg/q+sbGxUvrDT/sZDTsp21mGAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAABJRU5ErkJggg==

На сайтах типа http://onlinemultfilmy.ru/pro-mashiny/  помогает только после клика по иконке :( Как сделать, что бы автоматом срабатывала. Или если имеются другие варианты для таких случаев(кроме NoScript)

Отсутствует

 

№217-09-2015 13:00:02

jars
Забанен
 
Группа: Members
Зарегистрирован: 28-07-2015
Сообщений: 235
UA: Firefox 32.0

Re: Снять защиту от копирования текста.

А GM есть ? просто самое простое это в него закинуть этот код и указать сайт в шапке.

Выделить код

Код:

// ==UserScript==
// @name Enable select
// @author intronet
// @version 1.0
// @include  http://onlinemultfilmy.ru/*
// @run-at document-start
.... тут код из кнопки .........

Отредактировано jars (17-09-2015 13:00:57)

Отсутствует

 

№317-09-2015 13:07:18

amid525
Участник
 
Группа: Members
Зарегистрирован: 19-08-2014
Сообщений: 330
UA: Firefox 31.0

Re: Снять защиту от копирования текста.

jars
думаю ваш вариант не самый простой.  Ведь сайтов таких не мало.. А жена не будет вникать что и куда закидывать..
Кнопка выше - универсальна, как понимаю. Только нужно доп. кликать, что не совсем удобно.

Отредактировано amid525 (17-09-2015 13:08:25)

Отсутствует

 

№417-09-2015 13:39:22

jars
Забанен
 
Группа: Members
Зарегистрирован: 28-07-2015
Сообщений: 235
UA: Firefox 32.0

Re: Снять защиту от копирования текста.

пЦ. неудобно жмакнуть на кнопку?! Неудобно создать скрипт(готовый код) и записать пару адресов?!
полный пЦ.

Отсутствует

 

№517-09-2015 13:57:23

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 2447
UA: Firefox 43.0

Re: Снять защиту от копирования текста.

amid525 пишет:

А жена не будет вникать что и куда закидывать..

Спроси жену, может понравится такой вариант, только сам закинь :)

Отсутствует

 

№617-09-2015 14:04:00

Ultima2m
Участник
 
Группа: Members
Откуда: Россия
Зарегистрирован: 28-11-2013
Сообщений: 573
UA: Firefox 40.0

Re: Снять защиту от копирования текста.

amid525
Удалите из скрипта строки типа // @match (если есть)
И оставьте только одну // @include *
Скрипт будет работать на всех сайтах
Еще рекомендую установить стиль

скрытый текст

Выделить код

Код:

@namespace html url("http://www.w3.org/1999/xhtml");
@-moz-document url-prefix(http://), url-prefix(https://), url-prefix(ftp://) {
* {
  -moz-user-select: text !important;
 }  
}

Отсутствует

 

№717-09-2015 19:49:57

jars
Забанен
 
Группа: Members
Зарегистрирован: 28-07-2015
Сообщений: 235
UA: Firefox 32.0

Re: Снять защиту от копирования текста.

магнитные бури сёдня чтоле...
Для гризманки:
Скрипт, переделанный из букмарклета Lex1:

Выделить код

Код:

// ==UserScript==
// @name           AllowCopy/ContextMenu
// @version        1
// @author         Lex1
// @namespace   http://lexi.ucoz.ru/buttons.html
// @description   Allow Copy & Contex Menu
// @match          http://kinogo.net/*
// @match          http://www.kinogo.net/*
// @match          http://onlinemultfilmy.ru/*
// ==/UserScript==

(function(w){var arr=['contextmenu','copy','cut','paste','mousedown','mouseup','beforeunload','beforeprint'];for(var i=0,x;x=arr[i];i++){if(w['on'+x])w['on'+x]=null;w.addEventListener(x,function(e){e.stopPropagation()},true)};for(var j=0,f;f=w.frames[j];j++){try{arguments.callee(f)}catch(e){}}})(window);

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

Отсутствует

 

№818-09-2015 10:34:22

amid525
Участник
 
Группа: Members
Зарегистрирован: 19-08-2014
Сообщений: 330
UA: Firefox 31.0

Re: Снять защиту от копирования текста.

Ultima2m пишет:

amid525Удалите из скрипта строки типа // @match (если есть)И оставьте только одну // @include *Скрипт будет работать на всех сайтах
Еще рекомендую установить стиль:

скрытый текст
@namespace html url("http://www.w3.org/1999/xhtml");
@-moz-document url-prefix(http://), url-prefix(https://), url-prefix(ftp://) {
* {
  -moz-user-select: text !important;
}
}

Остановился на вашем варианте. Всем Спасибо!

Отредактировано amid525 (18-09-2015 10:35:07)

Отсутствует

 

№918-09-2015 12:42:29

amid525
Участник
 
Группа: Members
Зарегистрирован: 19-08-2014
Сообщений: 330
UA: Firefox 31.0

Re: Снять защиту от копирования текста.

Ultima2m
обнаружил проблему в данном решении, скрипт не дает вставлять текст в окне редактирования стилей:(

Отредактировано amid525 (18-09-2015 12:42:49)

Отсутствует

 

№1018-09-2015 13:32:07

Ultima2m
Участник
 
Группа: Members
Откуда: Россия
Зарегистрирован: 28-11-2013
Сообщений: 573
UA: Firefox 40.0

Re: Снять защиту от копирования текста.

amid525
А если вставить
// @exclude about:stylish-edit*

Отредактировано Ultima2m (18-09-2015 13:34:51)

Отсутствует

 

№1118-09-2015 13:58:04

amid525
Участник
 
Группа: Members
Зарегистрирован: 19-08-2014
Сообщений: 330
UA: Firefox 31.0

Re: Снять защиту от копирования текста.

Не помогает.:/

Добавлено 18-09-2015 14:19:56
Решил проблему!:) Отключил в настройках Scriptish "протокол данных"

Добавлено 18-09-2015 14:22:02
Ultima2m

Еще рекомендую установить стильскрытый текстВыделить

скрытый текст
кодКод:скрытый текст@namespace html url("http://www.w3.org/1999/xhtml");@-moz-document url-prefix(http://), url-prefix(https://), url-prefix(ftp://) {* {  -moz-user-select: text !important; }  }

Для чего он?

Отредактировано amid525 (18-09-2015 14:22:02)

Отсутствует

 

№1218-09-2015 14:29:16

Ultima2m
Участник
 
Группа: Members
Откуда: Россия
Зарегистрирован: 28-11-2013
Сообщений: 573
UA: Firefox 40.0

Re: Снять защиту от копирования текста.

amid525 пишет:

Для чего он?

На некоторых сайтах другой тип защиты.
Стиль помогает.

Отсутствует

 

№1318-09-2015 17:50:53

amid525
Участник
 
Группа: Members
Зарегистрирован: 19-08-2014
Сообщений: 330
UA: Firefox 31.0

Re: Снять защиту от копирования текста.

Ultima2m
Удалите из скрипта строки типа // @match (если есть)И оставьте только одну // @include *Скрипт будет работать на всех сайтах

, все-же, не совсем универсальное решение.. Не работает на http://zdravsite.ru/narodnye-recepty-ot-nasmorka/ :sick:

Отсутствует

 

№1420-09-2015 08:24:46

Ultima2m
Участник
 
Группа: Members
Откуда: Россия
Зарегистрирован: 28-11-2013
Сообщений: 573
UA: Firefox 40.0

Re: Снять защиту от копирования текста.

amid525 пишет:

все-же, не совсем универсальное решение

Ultima2m пишет:

На некоторых сайтах другой тип защиты.
Стиль помогает.

Отсутствует

 

№1520-09-2015 09:38:00

amid525
Участник
 
Группа: Members
Зарегистрирован: 19-08-2014
Сообщений: 330
UA: Firefox 31.0

Re: Снять защиту от копирования текста.

Ultima2m
тот что вы выше дали, не помог.
NoScript помогает..

Отредактировано amid525 (20-09-2015 09:40:15)

Отсутствует

 

№1620-09-2015 11:28:58

Ultima2m
Участник
 
Группа: Members
Откуда: Россия
Зарегистрирован: 28-11-2013
Сообщений: 573
UA: Firefox 40.0

Re: Снять защиту от копирования текста.

У меня на http://zdravsite.ru стиль отлично работает. Никаких проблем с копированием.

Отсутствует

 

№1720-09-2015 12:15:38

amid525
Участник
 
Группа: Members
Зарегистрирован: 19-08-2014
Сообщений: 330
UA: Firefox 31.0

Re: Снять защиту от копирования текста.

Ultima2m,  разобрался, вставлять код в свой стиль нужно было в самом верху над строчкой  :)
/* AGENT_SHEET */
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

Отсутствует

 

№1820-09-2015 12:16:55

jars
Забанен
 
Группа: Members
Зарегистрирован: 28-07-2015
Сообщений: 235
UA: Firefox 32.0

Re: Снять защиту от копирования текста.

Потому что там на сайте идет двойной дизабл и скрпит в теле (inline) страницы отключает любые мышиные клики:

скрытый текст

Выделить код

Код:

<script type="text/javascript">
var message="";
function clickIE4(){
if (event.button==2){
return false;
}
}
function clickNS4(e){
if (document.layers||document.getElementById&&!document.all){
if (e.which==2||e.which==3){
return false;
}
}
}
if (document.layers){
document.captureEvents(Event.MOUSEDOWN);
document.onmousedown=clickNS4;
}
else if (document.all&&!document.getElementById){
document.onmousedown=clickIE4;
}
document.oncontextmenu=new Function("return false")
</script>


и другой скрипт делает вылеление none :
скрытый текст

Выделить код

Код:

<script type="text/javascript">
function disableSelection(target){
if (typeof target.onselectstart!="undefined") //For IE
target.onselectstart=function(){return false}
else if (typeof target.style.MozUserSelect!="undefined") //For Firefox
target.style.MozUserSelect="none"
else //All other route (For Opera)
target.onmousedown=function(){return false}
target.style.cursor = "default"
}
</script>


Потому нужно и то и то сделать чтобы привести в чувство упоровшихся кодеров. самое простое в самом начале сказано:
Отключить JS для сайта - будет работать ПКМ.
Применить стиль - будет работать выделение.
Вот кнопка с этими двумя действиями:

Выделить код

Код:

// ВКЛ / ВЫКЛ  js на странице + разрешить выделение
// Результат появляется сразу без перезагрузки.

      const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);  
      var uri = makeURI("data:text/css," + encodeURIComponent( "*{ -moz-user-select: text !important;}" ));
// Для текущей вкладки:
           gBrowser.docShell.allowJavascript = !gBrowser.docShell.allowJavascript;
// или глобально:
//       gBrowser.mPrefs.setBoolPref("javascript.enabled", !gBrowser.mPrefs.getBoolPref("javascript.enabled"));
   if ( sss.sheetRegistered(uri, sss.AGENT_SHEET) ) sss.unregisterSheet(uri, sss.AGENT_SHEET);
      else 
   sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);

Всегда будет везде работать.

Отредактировано jars (20-09-2015 12:22:13)

Отсутствует

 

№1920-09-2015 14:47:30

amid525
Участник
 
Группа: Members
Зарегистрирован: 19-08-2014
Сообщений: 330
UA: Firefox 31.0

Re: Снять защиту от копирования текста.

Вот кнопка с этими двумя действиями:

Не то. Неудобна, нужно дополнительно кликать по ней. И после выделения текста, снова кликать что бы отключить, т.к не работает кнопка "добавить вкладку"..

Решение Ultima2m (скрипт и стиль) в паре, работают на автомате, ничего не нужно кликать, лишнего вроде бы, не блокируют. Пока оптимально. )

Отредактировано amid525 (20-09-2015 15:14:41)

Отсутствует

 

№2020-09-2015 14:58:01

lolipop
Участник
 
Группа: Members
Зарегистрирован: 03-07-2015
Сообщений: 126
UA: Firefox 38.0

Re: Снять защиту от копирования текста.

Вроде тема достаточно давняя и https://addons.mozilla.org/ru/firefox/a … httoclick/ всегда помогал.

Добавлено 20-09-2015 15:11:50
Сейчас попробовал, на http://kinogo.co/filmy_2015/ не срабатывает.

Добавлено 20-09-2015 15:13:47
Контекстное меню кстати и так можно вызвать, с зажатым shift

Отредактировано lolipop (20-09-2015 15:13:47)

Отсутствует

 

№2120-09-2015 15:17:51

amid525
Участник
 
Группа: Members
Зарегистрирован: 19-08-2014
Сообщений: 330
UA: Firefox 31.0

Re: Снять защиту от копирования текста.

lolipop
RightToClick тоже не удобен, отказался.

Сейчас попробовал, на http://kinogo.co/filmy_2015/ не срабатывает.

Решение от Ultima2m работает..:)

Отсутствует

 

№2220-09-2015 15:34:57

lolipop
Участник
 
Группа: Members
Зарегистрирован: 03-07-2015
Сообщений: 126
UA: Firefox 38.0

Re: Снять защиту от копирования текста.

А как этот стиль

Выделить код

Код:

@namespace html url("http://www.w3.org/1999/xhtml");
@-moz-document url-prefix(http://), url-prefix(https://), url-prefix(ftp://) {
* {
  -moz-user-select: text !important;
 }  
}

установить скриптом?
так пойдет?

Выделить код

Код:

    var allElem = document.getElementsByTagName("*");
    allElem.style.mozUserSelect = 'text !important';

То есть хочу засунуть и установку стиля в скрипт, чтобы всё в одном было.

Отсутствует

 

№2320-09-2015 17:28:09

lolipop
Участник
 
Группа: Members
Зарегистрирован: 03-07-2015
Сообщений: 126
UA: Firefox 38.0

Re: Снять защиту от копирования текста.

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

скрытый текст

Выделить код

Код:

// ==UserScript==
// @name    fork of AllowCopy/ContextMenu
// @version    1
// @author    Lex1 and Anonimous
// @namespace    http://lexi.ucoz.ru/buttons.html
// @description    Allow Copy (include hot keys) & Contex Menu
// @include    *
// @grant    none
// @run-at    document-start
// ==/UserScript==

;(function(){
    
    /* remove css protection */
    var removeCSSPretection = function removeCSSPretectionName(protectedWindow) {
        var allElem = protectedWindow.document.querySelectorAll("*");
        for(var i = 0; allElem.length; i++) {
            allElem.style['-moz-user-select'] = 'text !important';
        }
    };

    /* handler names */
    var handlerNameArr = ['contextmenu', 'copy', 'cut', 'paste', 'mousedown', 'mouseup', 'beforeunload', 'beforeprint', 'keyup', 'keydown'];

    /* remove protection of window */
    var removeProtection = function removeProtectionName(protectedWindow) {

        /*
         * document object in frames is same as window https://developer.mozilla.org/en-US/docs/Web/API/Window/frames
         * frames == iframe + frame
         */
    
        for(var i=0; i < handlerNameArr.length; i++){
            var handlerName = handlerNameArr[i];
            var handlerOnName = 'on' + handlerName;
            
            if(protectedWindow[handlerName])
                protectedWindow[handlerName] = null;
            protectedWindow.addEventListener(handlerName, function(e){ e.stopPropagation(); }, true);
        }

    };

    /* remove main window protection */
    removeProtection(window);
    removeCSSPretection(window);

    /* remove frame window protection */
    var frameList = window.frames;

    for(var i = 0; i < frameList.length; i++) {
        try{
            removeProtection(frameList[i]);
            removeCSSPretection(frameList[i]);
        } catch(e){
        }
    }
})();

Отредактировано lolipop (20-09-2015 17:44:27)

Отсутствует

 

№2420-09-2015 17:53:35

amid525
Участник
 
Группа: Members
Зарегистрирован: 19-08-2014
Сообщений: 330
UA: Firefox 29.0

Re: Снять защиту от копирования текста.

lolipop
так-же(как и на изначальном скрипте), не работает редактирование about:stylish

Отсутствует

 

№2520-09-2015 17:57:41

lolipop
Участник
 
Группа: Members
Зарегистрирован: 03-07-2015
Сообщений: 126
UA: Firefox 38.0

Re: Снять защиту от копирования текста.

amid525
Что за about:stylish?

Добавлено 20-09-2015 18:17:41
Оказывается в GreaseMonkey встроенная функция для стилей есть) Поправил код:

скрытый текст

Выделить код

Код:

// ==UserScript==
// @name    fork of AllowCopy/ContextMenu
// @version    1
// @author    Lex1 and Anonimous
// @namespace    http://lexi.ucoz.ru/buttons.html
// @description    Allow Copy (include hot keys) & Contex Menu
// @include    *
// @grant    GM_addStyle
// @run-at    document-end
// ==/UserScript==

;(function(){

    /* handler names */
    var handlerNameArr = ['contextmenu', 'copy', 'cut', 'paste', 'mousedown', 'mouseup', 'beforeunload', 'beforeprint', 'keyup', 'keydown'];

    /* remove protection of window */
    var removeProtection = function removeProtectionName(protectedWindow) {

        /*
         * document object in frames is same as window https://developer.mozilla.org/en-US/docs/Web/API/Window/frames
         * frames == iframe + frame
         */
    
        for(var i=0; i < handlerNameArr.length; i++){
            var handlerName = handlerNameArr[i];
            var handlerOnName = 'on' + handlerName;
            
            if(protectedWindow[handlerName])
                protectedWindow[handlerName] = null;
            protectedWindow.addEventListener(handlerName, function(e){ e.stopPropagation(); }, true);
        }

    };

    /* remove main window protection */
    removeProtection(window);

    /* remove frame window protection */
    var frameList = window.frames;

    for(var i = 0; i < frameList.length; i++) {
        try{
            removeProtection(frameList[i]);
        } catch(e){
        }
    }
    
    /* remove css protection */
    GM_addStyle('* { -moz-user-select: text !important; } ');
})();

Отредактировано lolipop (20-09-2015 18:17:41)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2011 Mozilla Russia
Язык отображения форума: [Русский] [English]