Страницы: 1
Всем привет, сразу скажу что не силен в дополнениях и в разработке в целом, но хочу переделать одно дополнение, так вот нужно выводить сообщения в строку состояния, как это можно реализовать? window.status не подходит.
Отсутствует
Можно использовать
из chrome://browser/content/browser.js.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Откуда вызывается код?
XULBrowserWindow – свойство объекта window браузера.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
А, это на Add-on SDK штука (и нужно изучать соответствующую документацию), там из этого скрипта надо сначала сообщение наверх отправить...
По аналогии с
и
worker.port.on("scoped", function(sentence, lng){translate(worker, sentence, lng)});
в lib/main.js
Причем внизу окно браузера недоступно, а наверху доступны все окна, но нужно понять, из какого пришло сообщение (или использовать активное).
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Видимо, что-то вроде
в inline02.js
worker.port.on("status", function(msg) { var utils = require("sdk/window/utils"); var active = utils.getMostRecentBrowserWindow(); active.XULBrowserWindow.setOverLink(msg); });
в lib/main.js.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
function injected(worker) { // push parameters worker.port.emit("Prefs", prefHandle.Prefs()); worker.port.emit("Urls", { ajax_loader: self.data.url("ajax-loader.gif") }); prefs.setChanged(function(){ worker.port.emit("Prefs", prefHandle.Prefs())}) worker.port.on("scoped", function(sentence, lng){translate(worker, sentence, lng)}); worker.port.on("status", function(msg) { var utils = require("sdk/window/utils"); var active = utils.getMostRecentBrowserWindow(); active.XULBrowserWindow.setOverLink('test'); }); addWorker(worker); var isin = exclusionList.findHost(getHostName(worker.url)); if(!isin) worker.port.emit("enable", {}); }
сделал так, но результата почему то нет
Отсутствует
Там вот такое выдает:
Module: y-translate/main has no authority to load: sdk/window/utils
Я добавил в harness-options.json
"y-translate/main": {
...
"requirements": {
...
"sdk/widget": "sdk/widget",
"sdk/window/utils": "sdk/window/utils"
},
И потом в resources\y-translate\lib\main.js
worker.port.on("scoped", function(sentence, lng){translate(worker, sentence, lng)});
worker.port.on("status", function(msg) {
var utils = require("sdk/window/utils");
var active = utils.getMostRecentBrowserWindow();
active.XULBrowserWindow.setOverLink(msg);
});
И в resources\y-translate\data\inline02.js
function translated(sentence, result, also1, also2)
{
mode.isTranslating = false;
showLoader(false);
showWithAll(sentence, result, also1, also2);
self.port.emit("status", "Translated: " + result);
}
Вроде, работает.
Добавлено 06-02-2014 21:13:35
выдает
Но почему-то только для
worker.port.on("status", function(msg) { try { var utils = require("sdk/window/utils"); var active = utils.getMostRecentBrowserWindow(); active.XULBrowserWindow.setOverLink(msg); } catch(e) { throw new Error("worker.port.on error: " + e); } });
Отредактировано Infocatcher (06-02-2014 21:13:35)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Супер!
убрал ненужные функции, типа создания блока которые перегораживает все и вся, убрал поддержку перевода русский-английский, добавил очистку при потере фокуса, вообще этот скрипт по хорошему бы переписать полностью, единственное что в нем хорошего, так это захват текста и тот работает криво, например на утубе в комментариях уже не работает.
альфа: https://drive.google.com/file/d/0B7pYmUnFHoXpbGpnaThzSVJLZW8/edit?usp=sharing
Отредактировано ganzales (06-02-2014 22:35:08)
Отсутствует
Страницы: 1