там создается url объект с blob
О как.
Ну теперь понятно. Благодарю всех за помощь.
toxa, на вкладке Сеть запросов масса
У меня вот как получается - пока идет обработка файла, на вкладке Сеть запросов и правда масса. Ссылки на файлы с расширением .ts
Но когда все готово, выскакивает диалог сохранения и вкладка Сеть становится девственно чистой, там нет ничего. А я хочу увидеть ссылку на файл .mp4 который мне предлагают сохранить.
toxa пишетПри этом в Панели разработчика, на вкладке Сеть нет никаких запросов, ничего
Где же ссылка на такой сайт?
Я не стал давать ссылки чтобы не было обвинений в рекламе. Но раз вопрос задан, то вот один из таких сайтов https://m3u8tomp4.com/
На некоторых сайтах типа онлайновых конверторов файлов, когда твой файл готов, автоматом выскакивает диалог сохранения файла. При этом в Панели разработчика, на вкладке Сеть нет никаких запросов, ничего. А иногда очень желательно видеть ссылку.
По моему в старой Опере, когда при скачивании появлялся модальный диалог сохранения файла, там было написано что то вроде: "Вы собираетесь скачать файл бла-бла размером бла-бла с адреса бла-бла". И это было очень удобно.
Поэтому вопрос, есть ли способ в [firefox] узнать по какой ссылке сервер будет отдавать файл? Может скрипт, расширение, или еще какой то метод? Ведь если браузер ссылку получил, должна же она где то быть. Как ее достать?
Благодарю, unter_officer
:beer:
Где взять версию СВ 0.0.7.0.0.26 paxmode?
Dumby
Большое спасибо! :D
Чем конструктор не угодил?
И что значит «не работает», не работает что?
Суть задачи не раскрыта совершенно.
Родить эвент и раздиспатчить на документе — это одно.
Вот именно что событие, созданное через конструктор, вроде и есть, но оно не делает то что хотелось бы.
Думаю это потому, что у него свойство isTrusted == false
А эта штука - nsIDOMWindowUtils.sendNativeKeyEvent() - делает все. Еще бы разобраться как прописать там модификатор, что там надо вписать вместо нуля? И что значит последняя строчка UnmodifiedCharacters?
toxa
Может как-то так:Выделить кодКод:
addEventListener('keydown', e=> { if (e.keyCode == 13) { e.preventDefault(); alert('Enter'); } });
:) Так это ж обычный слушатель события keydown. А никакая не эмуляция нажатия клавиши.
mokujin
Я из той ссылки скопировал функцию dblCtrlSend и попытался вызвать ее в консоли хотя бы в том виде как она есть.
Получаю ошибку Uncaught ReferenceError: data is not defined.
Когда то работал этот код
Как эмулировать нажатие клавиш, скажем Enter?
Если Картинки не один раз повторяются, то может что-то вроде такого:
Выделить кодКод:
<h3 class="Uo8X3b \S{6} \S{6}">Описание<\/h3>[\sА-Яа-яёЁ.,:;-]+(?!<h3 class="Uo8X3b \S{6} \S{6}">Картинки<\/h3>)
В том то и дело, что может быть один раз, может несколько, а может и не разу.
.... ааааа, оно у тебя в одной строке всё идет, чтоле?
Это чтоле xhr = new XMLHttpRequest() и ответ разбираешь?
ДА!! :lol:
Именно XMLHttpRequest я и разбираю.
Если так, то
Спасибо! :D
Сделал, получилось. Тему можно закрывать.
это зависит как ты его собираешься использовать. мож там скобки не нужны. хз. как его спользовать буш.
Да дело не в скобках. Дело в том, что вот эта часть регулярки
Она подходит и под первую строчку, где написано Картинки. И захватит текст, начиная с этой первой строки. Что мне не годится.
А как по другому сделать, я не знаю.
Выделить кодКод:var re = new RegExp(/(\<h3 class=\WUo8X3b.*\/h3\>)/);
или просто
var re = /(\<h3 class=\WUo8X3b.*\/h3\>)/;будет запомнен в $1
Но мне надо чтобы <h3 class="Uo8X3b OFScic zsYMMe">Картинки</h3> не захватило, а <h3 class="Uo8X3b Ohucic hsRREe">Описание</h3> - захватило.
Я пытался сделать так:
Но оно захватывает вот это все целиком
<h3 class="Uo8X3b OFScic zsYMMe">Картинки</h3> ........... some text ............... <h3 class="Uo8X3b Ohucic hsRREe">Описание</h3>
С вашим кодом то же самое.
…Есть строка:
<h3 class="Uo8X3b OFScic zsYMMe">Картинки</h3> ........... some text ............... <h3 class="Uo8X3b Ohucic hsRREe">Описание</h3> ........... some text ...............
Названия классов после Uo8X3b могут быть любые, а Uo8X3b постоянный.
Мне надо регулярку, чтобы она захватила текст, начиная с <h3 class="Uo8X3b Ohucic hsRREe">Описание</h3> причем вместо Ohucic hsRREe могут быть рандомные наборы символов.
Не уверен, но можно попробовать подсунуть свой gURLBar._whereToOpen()
Работает. Большое вам спасибо!
Я переключил в about:config настройку browser.urlbar.openintab = true
Все адреса из адресной строки открываются в новых вкладках. Мне это удобно.
А можно сделать, чтобы, если я вставляю в адресную строку алиас закладки, и если эта закладка - букмарклет (код начинается с javascript:), то она открывалась бы в текущей?
toxa пишетЕсли после инициализации я открою кнопку подредактировать, а потом закрою, то листнер дублируется. Помогает только перезапуск браузера.
Можно как то сделать, чтоб если листнер уже есть, новый не добавлялся?Ну флаг можно поставить куда-нибудь,
в окно или иное подобное надёжное место.
Если флаг есть, то не добавляем листенер, иначе добавляем.
А как поставить флаг в окно? И какие есть еще места, куда можно поставить флаг?
В кнопке в инициализации есть строчка
Если после инициализации я открою кнопку подредактировать, а потом закрою, то листнер дублируется. Помогает только перезапуск браузера.
Можно как то сделать, чтоб если листнер уже есть, новый не добавлялся?
Заодно хочу спросить. Вот эта строчка
в консоли работает нормально. А в кнопке дает ошибку. Или если написать это в редакторе кода, скажем, АСЕ - тоже пишет ошибку. Что там ему не нравится?
…Dumby
Да, это оказывается из за расширения было.
toxa пишеткод, копирующий адрес табов, можно приспособить под современные реалии?
Никакой адрес табов код не копирует.
Код добавляет в контекстное меню табов свои пункты, вернее, добавлял бы,
если бы в бесполезной функции htmlEscape не было бы синтаксической ошибки.
Если есть сомнение, возможно ли в «современных реалиях» добавление,
тогда пишем что-нибудь, и смотрим, добавляется или нет.
[spoiler][code](popup => {
var prfx = `cb${_id.slice(20)}-tabCopy-`;
var menuitem = popup.appendChild(document.createXULElement("menuitem"));
menuitem.id = prfx + "url";
addDestructor(() => popup.querySelectorAll(`[id^="${prfx}"]`)
.forEach(n => n.remove())
);
menuitem.render = () => {
var node = document.createXULElement("menuseparator");
node.id = prfx + "sep";
menuitem.before(node);menuitem.setAttribute("oncommand", "tcopy(this.id)");
node = menuitem.cloneNode(false);
node.id = prfx + "bbc";
node.setAttribute("label", "2");
menuitem.after(node);m
…
toxa
Винда никаким боком не связана с CB. Может, браузер обновился? Если да и до обновления был патченный omni.ja, надо снова патчить. Достаточно одной таблэтки
omni.ja --> modules --> AppConstants.jsmИ проверить в about:config
xpinstall.signatures.required - false
extensions.experiments.enabled - true
И не забыть очистить потом startupCache
Ну по логике конечно Винда не связана с CB. Но оно как то получилось, что при установке обновлений система несколько раз перезагружалась. Браузер при этом не обновлялся. И вот после этих пертурбаций и слетело CB. После, конечно, не значит вследствие. Но осадочек то остался...
Короче пропатчил я omni.ja, сделал все как написано. СВ установилось.
Спасибо большое за помощь!
Ну как быть, какие варианты по восстановлению СВ? Ведь с таким трудом установил, а теперь браузер отключил его и тот же вариант уже не срабатывает. Дополнение не проверено и хоть тресни.
Граждане, у меня скверная новость. Вчера моя Windows 10 скачала и установила какие то накопительные обновления и после этого слетела Сustom Buttons. Пишет: дополнение не может быть проверено, поэтому оно было отключено.
Я неделю назад с трудом установил paxmode. Сейчас удалил расширение и попробовал установить заново. Устанавливаться оно отказывается, потому что не проверено. Чистка папки startupCache не помогает. Что делать?
А вот этот код, копирующий адрес табов, можно приспособить под современные реалии?
[spoiler][code](function() {
// выходим, если функция уже выполнялась
if (document.getElementById("copyTabInfo")) return;
var htmlEscape = function(s) {
s = s.replace(/&/g, "&");
s = s.replace(/>/g, ">");
s = s.replace(/</g, "<");
s = s.replace(/"/g, """);
return s;
};
var copyTabInfo = function (event) {
var tab = document.popupNode;
var url = gBrowser.getBrowserForTab(tab).contentWindow.location.href;
Cc["@mozilla.org/widget/clipboardhelper;1"].getService(Ci.nsIClipboardHelper).copyString(url);
};
var copyTabBBC = function (aAsBBC) {
var tab = document.popupNode;
var title = tab.label;
var url = gBrowser.getBrowserForTab(tab).contentWindow.location.href;
var txt = aAsBBC ?
'' + htmlEscape(title) + '' :
t