Danke, das hat funktioniert !
Hier das Wiki dazu:
https://addons.mozilla.org/en-US/develope…t/commonjs.html
Danke, das hat funktioniert !
Hier das Wiki dazu:
https://addons.mozilla.org/en-US/develope…t/commonjs.html
Mit diesem Code-Beispiel geht es jetzt:
main.js :
var cm = require('context-menu');
cm.Item({
label: "Show MessageBox",
contentScript: 'self.on("click", self.postMessage);',
onMessage: function () {
testSUB("TEST");
}
});
function testSUB(msg) {
tabs = require('tabs');
tabs.activeTab.attach({ contentScript: 'alert("' + msg + '")' });
};
Alles anzeigen
FRAGE:
Wenn man die letzten vier Zeilen (gemeint sind die Zeilen des Unterprogramms testSUB() herausnimmt,
im Add-on Builder unter "Lib" ein ganz neues Script (z.B. Module1.js) erstellt, und in Module1.js die vier Zeilen von
testSUB() hineinbringt, funktioniert der Aufruf nicht mehr.
-Wie bringt man dem "Add-on Builder" bei, dass er das Unterprogramm testSUB() in Module1.js finden
und aufrufen kann?
Hallo,
das folgende Beispiel erzeugt den Eintrag "Show MessageBox" im "Rechte-Maustaste-Menu" des
Firefoxbrowsers, und wenn man auf den Menupunkt klickt, soll eine MessageBox mit der
Nachricht "TEST" aufpoppen.
Aber das erfolgreiche Aufrufen der Funktion "testSUB()" funktioniert nicht.
-Was muss man an dem Code ändern, damit die Messagebox "TEST" erscheint.
PS: wenn man in Zeile 7+8 den Doppelslash entfernt, funktioniert die Messagebox. Aber
ich möchte nicht die Messagebox von Zeile 8 abrufen, sondern die Messagebox von Zeile 13.
main.js (Code für den Add-On Builder: https://builder.addons.mozilla.org/user/private_addons/) :
var cm = require('context-menu');
cm.Item({
label: "Show MessageBox",
contentScript: 'self.on("click", self.postMessage);',
onMessage: function () {
javascript:testSUB("TEST");
//tabs = require('tabs'); //funktioniert
//tabs.activeTab.attach({ contentScript: 'alert("TEST Zeile 8")' });//funktioniert
}
});
function testSUB(msg) {
tabs = require('tabs');
tabs.activeTab.attach({ contentScript: 'alert(msg)' });
};
Alles anzeigen
Bemerkung zum Add-on Builder. Die Login-Seite ist https://builder.addons.mozilla.org/user/private_addons/
Hallo,
der nachfolgende Code fügt dem Firefox "Rechte-Maustaste-Menu" den Menupunkt mit dem Label
"innerHTML in die Konsole einfügen" hinzu. Wenn man auf den Menupunkt klickt, soll der innerHTML
der aktuellen Internetseite in die Error-Console geschrieben werden.
Aber leider erscheint in der Add-on Builder Error-Konsole
(die Error-Konsole ist oben im "Add-on Builder Editor" der fünfte Knopf von links)
die Fehlermeldung "ReferenceError: document is not defined".
Wie kommt man an die Information zu "innerHTML" heran?
main.js :
var cm = require('context-menu');
cm.Item({
label: "innerHTML in die Konsole",
contentScript: 'self.on("click", self.postMessage);',
onMessage: function () {
tabs = require('tabs');
//console.log(tabs.activeTab.url); //funktioniert einwandfrei
console.log(document.body.innerHTML); //funktioniert nicht (Fehlermeldung: ReferenceError...)
}
});
Jetzt funktioniert es. -Danke. <;)
bei Verwendung des Terms "window.document.location.href"
erscheint in der Add-on Builder Error-Konsole die gleiche Fehlermeldung (Screenshot: siehe angehängtes Bild).
Bemerkung zum Add-on Builder. Die Login-Seite ist https://builder.addons.mozilla.org/user/private_addons/
Hallo,
der nachfolgende Code fügt im Firefox Rechte-Maustaste-Menu den Menupunkt "NOTEPAD" hinzu. Wenn man
auf den Menupunkt "NOTEPAD" klickt, startet Notepad, und lädt die Datei c:\autoexec.bat .
Das PROBLEM: Wenn man die Zeile ...
"aktiviert" (=den Doubleslash entfernt), erscheint in der Add-on Builder Error-Konsole
(die Error-Konsole ist oben im "Add-on Builder Editor" der fünfte Knopf von links)
die Fehlermeldung "ReferenceError: document is not defined"
Wie kann man die Information zu "document.location.href"
(= die URL zur aktuell geladenen Internetseite) bekommen?
main.js :
var cm = require('context-menu');
cm.Item({
label: "NOTEPAD",
contentScript: 'self.on("click", self.postMessage);',
onMessage: function () {
//console.log(document.location.href);
var {Cc,Ci} = require('chrome');
var args = ['C:\\autoexec.bat'];
var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsILocalFile);
file.initWithPath('C:\\Windows\\notepad.exe');
var process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess);
process.init(file);
process.run(false, args, args.length);
}
});
Alles anzeigen
Zitat von Sören HentzschelHallo,
die Google Translation API (v1) wurde ab 01. Dezember komplett eingestellt, die neue Version (v2) ist nicht kostenlos nutzbar. Ich vermute hier einen Zusammenhang. Davon sind einige Erweiterungen betroffen.
Danke, Sören. -Der Fehler, dass der Translator ab dem 1. Dezember 2011 nicht mehr geht, wurde auf bugzilla.mozilla.org
am 25.10.2011 beschrieben:
URL des Postings:
https://bugzilla.mozilla.org/show_bug.cgi?id=697291
Es wurde auch geraten, dass das Video des Add-on Builder Product Managers "Daniel Buchner"
am Besten neu gedreht werden sollte.
Desweiteren gibt es eine Ankündigung von Google.com, dass ab 1. Dezember 2011 nur noch die "Google Translate API v2" genutzt werden kann, und die "Google Translate API v1" nicht mehr verfügbar ist.
URL:
http://code.google.com/intl/de/apis/l…e/overview.html
Danke, das Löschen hat jetzt funktioniert; irgendwie scheint sich der Firefox-Browser
bei seinen Chronik-Einträgen aufgehängt zu haben ...
Hallo,
in meiner Firefox-Menuleiste habe ich die folgenden fünf Spam-Einträge:
1)packstation kundenlogin-daten-aendern.html
2)DHL Packstation - Rund um die Uhr Pakete empfangen und versenden
3)packstation
4)http://www.packstation.de
5)index_kundendaten_dhl.jsp
DHL Seiten besuche ich vielleicht nur einmal im Monat; trotzdem belegen diese Einträge
permanent die ersten 5 Plätze, und gehen niemals weg ! -Erst ab Platz 6 kommen dann die
URL's der Seiten, die ich aktuell besuchte.
Ich versuchte schon mit der Funktion "Löschen" (im Rechte-Maustaste-Menu)
die DHL-Links wegzubekommen, jedoch gibt es
den Menupunkt "Löschen" bloss bei Firefox-Lesezeichen, aber in der Firefox-Chronik nicht.
Wie bekomme ich die Spam-Einträge weg? (Firefox 8.0.1)
Zitat von Sören HentzschelGoogle Translation API (v1) wurde am 01. Dezember komplett eingestellt
Das ist gut zu wissen. -Danke!
Habe einmal ein "Add -on" gemacht, das so funktioniert: man selektiert im Browser ein Wort,
und im "Rechten-Maustaste" -Menu findet sich dann der Menupunkt "Artikel auf Wikipedia.de finden".
Falls es den entsprechenden Artikel in Wikipedia gibt, wird der Artikel im Browser in einem neuen Tab
aufgerufen.
main.js
// Import the APIs we need.
exports.main = function() {
var contextMenu = require('context-menu');
var tabs = require('tabs');
var selection = require('selection');
var Request = require('request');
var menuItem = contextMenu.Item({
label: "Artikel auf Wikipedia.de finden",
context: contextMenu.SelectionContext(),
contentScript: 'self.on("click", function() {' +
'var text = window.getSelection().toString();' +
'self.postMessage(text);' +
'});',
onMessage: function(text) {
tabs.open("http://de.wikipedia.org/wiki/" + text);
}
}) ;
};
//
Alles anzeigen
Habe mittlerweile die Internetseite von dem Youtube-Typen gefunden, wo auch der
Original-Code gelistet ist. Die URL ist :
https://addons.mozilla.org/en-US/develope…mple-addon.html
Ich übernahm das Script in meinem Userbereich von "mozilla.org" ...
https://builder.addons.mozilla.org/user/private_addons/
unter "Private Scripte", und klickte, um das Add-on zu testen,
auf das "Addon Builder Helper" -Symbol (das Augensymbol oben links oben
im Add-On Builder Editor).
Dann ging ich auf die französische Seite ...
http://www.mozilla.org/about/manifesto.fr.html
... und markierte den ersten Satz. Beim Drücken der "Rechten Maustaste" erscheint
auch der gewünschte Menüeintrag "Translate Selection", aber danach passiert nichts mehr.
Warum funktioniert es nicht?
Der Code aus der obengenannten Seite:
// Import the APIs we need.
var contextMenu = require("context-menu");
var request = require("request");
var selection = require("selection");
exports.main = function(options, callbacks) {
console.log(options.loadReason);
// Create a new context menu item.
var menuItem = contextMenu.Item({
label: "Translate Selection",
// Show this item when a selection exists.
context: contextMenu.SelectionContext(),
// When this item is clicked, post a message to the item with the
// selected text and current URL.
contentScript: 'self.on("click", function () {' +
' var text = window.getSelection().toString();' +
' self.postMessage(text);' +
'});',
// When we receive the message, call the Google Translate API with the
// selected text and replace it with the translation.
onMessage: function (text) {
if (text.length === 0) {
throw ("Text to translate must not be empty");
}
console.log("input: " + text);
var req = request.Request({
url: "http://ajax.googleapis.com/ajax/services/language/translate",
content: {
v: "1.0",
q: text,
langpair: "|en"
},
onComplete: function (response) {
translated = response.json.responseData.translatedText;
console.log("output: " + translated);
selection.text = translated;
}
});
req.get();
}
});
};
exports.onUnload = function (reason) {
console.log(reason);
};
//
Alles anzeigen
Anmerkung: Hier die Adresse, wo man sich einloggen muss, um die
persönlich erstellten Add-ons einzusehen:
https://builder.addons.mozilla.org/user/private_addons/
Wenn man noch kein Konto bei "addons.mozilla.org" hat, wird man gebeten, eine
Emailaddresse & ein Passwort anzugeben, um ein Konto für den "Add-on Builder"
zu erstellen.
Ich hätte gern die Tastenkombination für "Strg-L" (Focus auf Adressleiste des Firefox-Browsers setzen) auf "F1" geändert. -Wie mache ich das ?
Hallo,
habe das Erklär-Video ...
Jedoch das Übersetzen der französischen Seite "The Mozilla Manifesto" ...
http://www.mozilla.org/about/manifesto.fr.html
...funktioniert nicht. -Was ist falsch? -HIER der abgetippte CODE aus dem Video:
exports.main = function() {
var contextMenu = require('context-menu');
var request = require('request');
var selection = require('selection');
var menuItem = contextMenu.Item({
label: "Translate Selection",
context: contextMenu.SelectionContext(),
contentScript: 'self.on("click", function () {' +
'var text = window.getSelection().toString();' +
'self.postMessage(text);' +
'});',
onMessage: function (text) {
if (text.length === 0) {
throw ('Text to translate must not be empty');
}
var req = request.Request({
url: "http://ajax.googleapis.com/ajax/services/language/translate",
content: {
v: "1.0",
q: text,
langpair: "|en"
},
onComplete: function (response) {
translated = response.json.responseData.translatedText;
selection.text = translated;
}
});
req.get();
}
});
};
Alles anzeigen
Naja, ich nehme die ESC-Taste jetzt zum Schließen des Tabs (die Kombination Strg-W war wirklich sehr umständlich).
Habe upgedated auf Firefox 8.0.1 -Da die Frage des TE bisher ohne Antwort blieb, möchte
ich die Frage nochmal stellen:
Problem: Ich möchte die Tastenkombination für das das Schließen des aktuellen Tabs
(momentan "Strg-W") auf Taste "F1" umändern.
Kann man diese Änderung mit (Firefox-) boardeigenen Mitteln erreichen? Früher gab es das Addon
"keyconfig" und "keyconfig enhanced", aber beide Addons sind nicht mehr im Downloadbereich
verfügbar.
Hallo,
Ich möchte die Tastenkombination für das das Schließen des aktuellen Tabs
(momentan "Strg-W") auf Taste "F1" umändern.
Kann man diese Änderung mit (Firefox-) boardeigenen Mitteln erreichen?
Früher gab es das Addon "keyconfig" und "keyconfig enhanced",aber beide haben den Betrieb eingestellt.
(Firefox 5.0)
Ich würde eine Hinweisbox ganz nützlich finden. Wenn es einige User stört, könnte man die
Hinweisbox ja mit einem Dreifach-Bestätigungsbutton ausstatten.
FRAGE: "Wollen Sie wirklich MEHRERE Seiten als Startseite einrichten ?"
1.[Ja]
2.[Nein]
3.[zukünftig nicht mehr nachfragen]
Das Witzige ist, wenn man eine einzige Seite im Browser geöffnet hat, ist der
"Startseite einrichten" -Knopf beschriftet mit:
"Aktuelle Seite verwenden"
Wenn man mehrere Seiten im Browser geöffnet hat, ist der
"Startseite einrichten" -Knopf beschriftet mit:
"Aktuelle Seiten verwenden".
Es wäre besser, wenn man eine Warnmeldung vorschalten würde, wenn der Browser
als Startseite mehrere Seiten einrichtet, zum Beispiel so:
"Achtung, Sie sind im Begriff mehrere Seiten als Startseite einzurichten. -Wollen Sie
wirklich MEHRERE Seiten als Startseite einrichten ?" [Ja] [Nein]