Есть у меня на странице небльшой див, создаваемый скриптом. В этом диве вертикальная прокрутка. А я привык скроллить колесиком мыши.
И вот иногда получается, кручу колесико, а начинает скроллиться не содержимое дива, а вся страница. А иногда как и должно быть, див.
Как бы это дело упорядочить?
Ну что ж никто и не ответит?
Может как-то сделать, чтоб пока курсор над дивом, прокрутка на остальной странице не работала?
Отредактировано toxa (11-08-2015 21:57:07)
Отсутствует
Подскажите, пожалуйста, по регулярке, если кому не лень будет.
У меня затык, как это сделать для обоих вариантов ссылки. И с dl=, и без.
Придумалось только:
- находит нужную для часть ссылки, но при замене через dl.dropboxusercontent.com/$2 - оставляет, соответственно, только последний символ перед исключением. Да и само исключение заодно. На этом, мозг меня послал.
Отсутствует
Добавлено 12-08-2015 01:38:58
еще более общее
Отредактировано jars (12-08-2015 01:38:58)
Отсутствует
jars
Спасибо, но мимо. Между dropbox.com и ?dl= - может быть что угодно. А ?dl= - может как быть, так и нет. И во втором случае отсутствие надо не учитывать, а в первом - отбрасывать при замене. Так то, для только ссылок с dl, не проблема и с просто replace(/(www\.)?dropbox\.com\/(.*)\?dl=([0-9])/, 'dl.dropboxusercontent.com/$2').
Или тут и вовсе одной регуляркой не обойтись и надо несколько проверок делать.
Отсутствует
turbot
А если так: (www\.)?dropbox\.com((?!\?dl=[0-9])\S+)(\?dl=[0-9])?
UPD: штой-то усомнился, мозгов не хватило. А так можно ли писать: dl.dropboxusercontent.com/$2,($3)?
Отредактировано negodnik (12-08-2015 12:33:07)
Отсутствует
А если так: (www\.)?dropbox\.com((?!\?dl=[0-9])\S+)(\?dl=[0-9])?
Это чего, так можно ссылку выпрямить типо?
А такую можно, к примеру - http://get.videolan.org/vlc/2.2.1/win32/vlc-2.2.1-win32.exe - циферки версии меняются иногда, как их подхватить можно?
Или я вообще не по теме
Отсутствует
negodnik
А так - не видит ссылки без dl в конце.
А так можно ли писать
Писать-то можно, но ничего хорошего это не даст.
В общем, меня не в ту степь понесло, как всегда. Все проще и без регулярок оказалось.
Но вопрос не снимаю - просто интересно, можно ли такую регулярку сделать.
fokanik
Я не понял, что нужно.
Отсутствует
fokanik
Я не понял, что нужно.
http://get.videolan.org/vlc/2.2.1/win32/vlc-2.2.1-win32.exe ---> сегодня ссылка такая, а "завтра" версия программы изменится и ссылка будет такой:
http://get.videolan.org/vlc/2.3.3/win32/vlc-2.3.3-win32.exe ---> как скачать программу по измененной (подобной/неизвестной) ссылке не заходя на сайт
Отсутствует
Есть у меня на странице небльшой див, создаваемый скриптом. В этом диве вертикальная прокрутка. А я привык скроллить колесиком мыши.
И вот иногда получается, кручу колесико, а начинает скроллиться не содержимое дива, а вся страница. А иногда как и должно быть, див.
Как бы это дело упорядочить?
Я нашел тут - человек интересовался аналогичным вопросом и ему подсказали решение на чистом js
Но у меня это решение работает непонятным образом. Может кто разберется и поможет?
Отсутствует
toxa
А возвращается нормальный скроллинг дива если кликнуть на див когда начинает скроллиться не содержимое дива, а вся страница?
Да, возвращается.
Вообще страница начинает скроллиться, когда на диве вертикальная прокрутка дошла до самого верха/ или низа. На том сайте есть несколько похожих тем и во всех темах одинаковая жалоба - содержимое дива скроллится до конца, а затем начинает скроллиться страница. Неудобно.
Там предлагают несколько разных решений, но все они с использованием jQuery.
Отсутствует
this.tooltipText = this.Help;
Как теперь скрыть строки в справке - никак?
Отсутствует
Вообще страница начинает скроллиться, когда на диве вертикальная прокрутка дошла до самого верха/ или низа.
addEventListener('DOMMouseScroll', function(e) { if (e.target.localName == 'div') e.target.focus(); }, false, gBrowser );
Отсутствует
toxa пишетВообще страница начинает скроллиться, когда на диве вертикальная прокрутка дошла до самого верха/ или низа.
Выделить кодКод:
addEventListener('DOMMouseScroll', function(e) { if (e.target.localName == 'div') e.target.focus(); }, false, gBrowser );
Что-то не работает оно у меня.
А разве div - это тот элемент, который может принимать фокус?
Я думал, фокус принимают только input, textarea и т. д.
Отсутствует
А разве div - это тот элемент, который может принимать фокус?
Я думал, фокус принимают только input, textarea и т. д.
Насчёт фокуса не знаю, но ты вроде писал что скролинг дива возвращается если кликнуть на диве, а клик обычно переключает фокус на кликнутой элемент.
Добавлено 13-08-2015 20:24:11
Может нужно блокировать полный скролинг дива так что бы вертикальная прокрутка не дошла до самого верха
Добавлено 13-08-2015 20:45:16
addEventListener('wheel', function (e) { if ( e.target.localName == 'div') e.target.scrollTop -= e. wheelDeltaY; }, false, gBrowser );
Отредактировано bunda1 (13-08-2015 20:45:16)
Отсутствует
Насчёт фокуса не знаю, но ты вроде писал что скролинг дива возвращается если кликнуть на диве, а клик обычно переключает фокус на кликнутой элемент.
Ну да, скролинг дива возвращается если кликнуть на диве. Но даже если в этом диве выделить текст - а это наверняка означает, что див как бы "в фокусе" - даже тогда, если прокрутка доходит до конца, начинает скроллиться страница.
Я пока приспособил этот вариант
Он работает, но есть один нюанс. Если я пробую запустить этот jQuery код из скрэтчпада, он работает, но только если скрэтчпад в контексте содержимого. Если переключить его в контекст браузера - сразу ошибка "$ is not defined".
Приходится делать loadURI (" javascript: _и дальше jQuery код_ "), т. е. через ж...
Это как-то решается?
Отредактировано toxa (13-08-2015 21:05:49)
Отсутствует
А вот не знаю, я в jQuery не силён. А что это тоже не работает:
addEventListener('wheel', function (e) { if ( e.target.localName == 'div') e.target.scrollTop -= e. wheelDeltaY; }, false, gBrowser );
Отсутствует
Text To Editor( Firefox )
https://forum.mozilla-russia.org/viewto … 48#p577348
function textToEditor() { var sel = getSelect(); // фильтр .... if ( !sel ) { Components.classes["@mozilla.org/alerts-service;1"].getService(Components.interfaces.nsIAlertsService) .showAlertNotification("chrome://global/skin/icons/error-16.png", "Text To Editor", "Выделите или скопируйте текст!", false, "", null, ""); return; } // получить выделенный текст в UTF-8 var text = convertFromUnicode("UTF-8", sel ); // устанавить путь к файлу и записать текст .... var directoryService = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties); var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"]. createInstance(Components.interfaces.nsIFileOutputStream);var file = directoryService.get("ProfD", Components.interfaces.nsIFile); file.append("custombuttons"); file.append("TextToEditor.txt"); foStream.init(file, 0x02|0x08|0x20, 0666, 0); foStream.write(text, text.length); foStream.close(); file.launch(); // открыть файл };
А все уже, помогли:
// устанавить путь к файлу и записать текст .... var directoryService = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties); var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"]. createInstance(Components.interfaces.nsIFileOutputStream); var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); file.initWithPath("E:\\Desktop\\Заметки"); //Папка. не забываем про двойные косые в пути!!! file.append("Заметка.txt"); // имя файла foStream.init(file, 0x02|0x08|0x20, 0666, 0); foStream.write(text, text.length); foStream.close(); file.launch(); // открыть файл
Отредактировано fokanik (14-08-2015 21:45:18)
Отсутствует
А все уже, помогли:
Хорошо, но можно короче:
// устанавить путь к файлу и записать текст .... var foStream = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream); var file = Services.dirsvc.get('Desk', Ci.nsIFile); file.append("Заметки"); file.append("Заметка.txt"); foStream.init(file, 0x02|0x08|0x20, 0666, 0); foStream.write(text, text.length); foStream.close(); file.launch();
Отредактировано bunda1 (14-08-2015 23:09:27)
Отсутствует