Hallo edvoldi.
Da wurde durch einen Fehler von mir, irrtümlich eine ältere Version hoch geladen.
Bei meinem Link ist jetzt wieder die aktuelle, mit verschiebbarer Schaltfläche.
Wie gesagt, ausschließlich mein Fehler. :oops:
Sorry.
Mfg.
Endor
Hallo edvoldi.
Da wurde durch einen Fehler von mir, irrtümlich eine ältere Version hoch geladen.
Bei meinem Link ist jetzt wieder die aktuelle, mit verschiebbarer Schaltfläche.
Wie gesagt, ausschließlich mein Fehler. :oops:
Sorry.
Mfg.
Endor
Zitat von Endor
http://dl.dropbox.com/u/15467633/Fir…iptLoader.uc.jsDie müsste jetzt passen.
Hallo Endor,
bei deiner Version bleibt der Affenkopf wo er vorher auch war
Gruß
EDV-Oldi
Klar, die Info ist ja gespeichert, wo der Affenkopf zuletzt war.
Über Anpassen Dialog von Firefox, kannst Du nun den Affenkopf verschieben.
Wenn ich nicht nochmals was falsch gemacht habe.
Mfg.
Endor
zu Add More Text To Clipboard:
Die Kontextmenüeinträge funktionieren, der Button zum Leeren auch.
Der Button ist in der Menüleiste, was unpraktisch sein kann.
Das Tastenkürzel funktioniert nicht, weil eine andere Funktion (nämlich focusChatBar) bereits das gleiche Tastenkürzel hat. Ein noch nicht verwendetes Tastenkürzel, z.B. Strg+Alt+D, funktioniert.
Was soll ich ändern? Jedenfalls ein anderes Tastenkürzel, meine ich.
Hallo zusammen,
ich nutze das Script VerticalTabbar.uc.js, welches auch tadellos funktioniert. Nun wüßte ich aber gern, ob die Möglichkeit besteht, die Icons der aufgerufenen Seiten einzeln untereinander zu platzieren. Im Moment ist es so, daß die neu aufgerufene Seite die bereits vorhandene Seite bzw. das Icon überschreibt.
Also ich meine jeweils ein Tab pro Seite.
Dieses Verhalten ist leider standardmäßig so eingestellt, und ich habe in about:config auch nichts gefunden, womit sich das ändern ließe.
Mit Strg + Klick auf die gewünschte Url läßt sich das zwar umgehen, ist aber doch lästig.
Da ich leider keine Javascript-Kenntnisse habe, sehe ich auch nicht, an welcher Stelle man etwas ändern könnte.
Ich hatte sehr lange das AddOn Tab Utilities verwendet, dort kann man das einstellen, aber leider wird das AddOn nicht mehr kontinuierlich gepflegt und schleppt schon recht lange einen Bug mit, der zwar gemeldet aber nicht gefixt ist (Rechtsklick auf Eigenschaften).
Falls es wichtig ist, ich nutze Firefox 45.0 beta mit Linux Debian Sid.
Ich habe dann mal den UserScriptLoader aus Beitrag 259 bei GitHub hochgeladen.
Perfekt!
Vielen Dank!
Mfg.
Endor
Zitat von clioIm Moment ist es so, daß die neu aufgerufene Seite die bereits vorhandene Seite bzw. das Icon überschreibt.
Also ich meine jeweils ein Tab pro Seite.
Dieses Verhalten ist leider standardmäßig so eingestellt, und ich habe in about:config auch nichts gefunden, womit sich das ändern ließe.
Mit Strg + Klick auf die gewünschte Url läßt sich das zwar umgehen, ist aber doch lästig.
Wenn ich dich jetzt nicht völlig falsch versteh, dann beschreibst Du doch nur das Standardverhalten aller Browser!? Neben Strg+Klick geht auch noch Mittelklick, wenn nicht gerade Apple-Mouse. Aber sieh dir doch mal NewTabByLeftClick oder NewTabBylLongPress an (setze ich alle selbst nicht ein).
Wenn ich das aktualisierte Skript AutoPagerize.uc.js in ein Testprofil lade, landet der entsprechende Knopf dazu jetzt im Menü (wie der Affenkopf zuvor auch):
[Blockierte Grafik: http://fs5.directupload.net/images/160223/temp/7vl8kewn.jpg]
Wenn ich eine Sicherung nutze, dann wieder an gewohnter Stelle:
[Blockierte Grafik: http://fs5.directupload.net/images/160223/temp/fgzcgbzv.jpg]
Ich habe auch hier beide Skripte verglichen, aber gegenüber dem Affenkopf sind nur minimale Änderungen in zwei Zeilen zu finden. Woran also liegt das?
Das sind die Änderungen zwischen der letzten und vorletzten Version:
https://github.com/ardiman/userCh…1e9e0c86ae79af0
Die erste Änderung, in Zeile 223, müsste es erklären.
Zitat von SperavirAber sieh dir doch mal NewTabByLeftClick oder NewTabBylLongPress an (setze ich alle selbst nicht ein).
Danke für Deine Antwort.
Die beiden Scripte hatte ich auch zuvor schon mal probiert, funktionieren aber leider nicht wie gewünscht.
Ja, das ist zwar Standardverhalten, ich hatte aber die leise Hoffnung, daß man das in dem Script ändern könnte.
Aber das wird wohl zu aufwändig sein.
Statt Strg und Klick geht auch noch ein Rechtsklick auf die Url und "in neuem Tab öffnen", aber so einfach draufklicken wie mit Tab Utilities war schon sehr bequem.
Wenn es dem so ist, wie Speravir auch vermutet, dann nimmt doch einfach u.a. auch eins der Scripte, die alles Mögliche in Tabs öffnen. Gibt genug davon. Kannst was davon ausprobieren.
ZB.sowat hier. Gibt aber, wie gesagt noch andere.
Speravir und loshombre
Danke für Eure Mühe, ich habe aus der Scriptdatenbank schon alles möglichen probiert, leider ohne Erfolg.
Ich habe jetzt ein AddOn "Open Bookmarks in a new Tab" gefunden, das funktioniert wenigstens für die Lesezeichen. Alles andere muß dann halt mit zusätzlichen Tasten geöffnet werden.
Zitat...ich habe aus der Scriptdatenbank schon alles möglichen probiert, leider ohne Erfolg.
Wenn es dir darum geht, alles mögliche in neuen Tabs zu öffnen, dann kann ich dir als ein Ahnungsloser das aber garantieren, dass es sowat in der "Scriptdatenbank" gibt.
Nur leider hast du was sehr wichtiges nicht beachtet.
Du schreibst:
Zitat...ich nutze Firefox 45.0 beta mit Linux Debian Sid
und wir schreiben:
Zitat von <woltlab-metacode-marker data-name=
Github (Link)" data-link="">
Testumgebung/Historie: Win 7 64bit SP 1/ Firefox 44 (ab 31.01.2016)
Fällt dir was auf ?
loshombre fragt
ZitatFällt dir was auf ?
aufgrund von
Zitatund wir schreiben:
Github (Link) hat geschrieben:
Testumgebung/Historie: Win 7 64bit SP 1/ Firefox 44 (ab 31.01.2016)
und ich antworte:
Ja selbstverständlich fällt mir das auf, da hier geschätzt zu 98% Windows-User sind, war mir das schon immer klar ...;-)
Na ja, aber die Scripte funktionieren auch auf unixoiden Betriebssystemen, sonst hätte ich ja keine vertikale Tabbar, aber leider wohl nicht alle.
Aber ist ja weiter nicht tragisch, ich habe ja eine Lösung.
...und ich sag' auch nicht wieder Scriptdatenbank, sondern bleibe ordentlich bei github.com....versprochen.
Nein nein, so war das auch wieder nicht gemeint.
Soll heißen, die scripte werden von uns nur auf Windows getestet. Natürlich werden ne Menge davon auch auf Linux laufen, aber mit Sicherheit auch nicht alle.
Und auch nur im aktuellen Fuchs, der ja 44 heißt.
Und natürlich kannst du die scriptsammlung auch Datenbank, oder wie auch immer nennen. Hauptsache wir verstehen wo rum es geht.
Hallo @all..
ich nutze u.a. dieses Script:
Funktioniert auch einwandfrei.
Meine Frage wäre, kann man da etwas dran umschreiben.
Ich möchte nämlich kein Icon in der Statusleiste, sondern lieber einen Eintrag unter: Extras
Und dann hätte ich gerne die Auswahlmöglichkeit: Freie Markierung im Kontextmenü bei Rechtsklick.
In meinem alten benutzten Script war das so vorhanden.
WebScreenShot.uc.xul
<?xml version="1.0"?>
<!DOCTYPE overlay>
<!--
// ==UserScript==
// @name WebScreenShot.uc.xul
// @namespace http://d.hatena.ne.jp/Griever
// @include main
// @version 0.0.2
// ==/UserScript==
-->
<overlay id="ss_overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<menupopup id="menu_ToolsPopup">
<menu id="WebScreenShotMenu" label="Screenshot Menü" insertbefore="menu_preferences">
<menupopup>
<menuitem label="Ganze Seite" oncommand="new WebScreenShot().fullCapture()"/>
<menuitem label="Aktuelle Ansicht" oncommand="new WebScreenShot().pageCapture();"/>
<menuitem label="Freie Markierung" oncommand="new WebScreenShot().clippingCapture();"/>
<menuitem label="Markierter Ausschnitt" oncommand="new WebScreenShot().clickCapture();"/>
</menupopup>
</menu>
</menupopup>
<popup id="contentAreaContextMenu">
<menuitem id="WebScreenShotOnImage"
label="Grafik als Base64 kopieren"
insertafter="context-copyimage"
oncommand="new WebScreenShot().imageCapture(gContextMenu.target);"/>
<menuitem id="WebScreenShotMenu"
label="Freie Markierung"
insertafter="#context-selectall"
oncommand="new WebScreenShot().clippingCapture();"/>
</popup>
<script type="application/x-javascript" xmlns="http://www.w3.org/1999/xhtml"><![CDATA[
document.getElementById('contentAreaContextMenu').addEventListener('popupshowing', function func(event) {
if (event.target != event.currentTarget) return;
document.getElementById('WebScreenShotOnImage').hidden = !gContextMenu.onImage && !gContextMenu.onCanvas;
}, false);
window.WebScreenShot = function(){
this.init();
};
window.WebScreenShot.prototype = {
init: function() {
this.browser = gBrowser.mCurrentBrowser;
/*this.statusField = document.getElementById('statusbar-display');*/
},
handleEvent: function(event) {
switch(event.type) {
case 'mousedown':
this.browser.removeEventListener('mousedown', this, true);
this.x = event.screenX;
this.y = event.screenY;
this.innerTop = content.mozInnerScreenY;
this.innerLeft = content.mozInnerScreenX;
this.innerBottom = this.innerTop + content.innerHeight;
this.innerRight = this.innerLeft + content.innerWidth;
this.box.openPopupAtScreen(this.x, this.y);
this.browser.addEventListener('mousemove', this, true);
this.browser.addEventListener('mouseup', this, true);
break;
case 'mousemove':
var moveX = event.screenX;
var moveY = event.screenY;
if (moveX <= this.innerLeft) moveX = this.innerLeft;
else if (moveX >= this.innerRight) moveX = this.innerRight;
if (moveY <= this.innerTop) moveY = this.innerTop;
else if (moveY >= this.innerBottom) moveY = this.innerBottom;
if (this.x > moveX || this.y > moveY)
this.box.moveTo(this.x > moveX? moveX : this.x, this.y > moveY? moveY : this.y);
this.box.width = Math.abs(moveX - this.x);
this.box.height = Math.abs(moveY - this.y);
/*this.statusField.label = this.box.width + 'x' + this.box.height;*/
break;
case 'mouseup':
this.browser.removeEventListener('mousemove', this, true);
this.browser.removeEventListener('mouseup', this, true);
var borderWidth = Math.round( (this.box.boxObject.width - this.box.clientWidth) / 2);
var x = this.box.boxObject.screenX - content.mozInnerScreenX + content.scrollX + borderWidth;
var y = this.box.boxObject.screenY - content.mozInnerScreenY + content.scrollY + borderWidth;
var w = this.box.boxObject.width - borderWidth;
var h = this.box.boxObject.height - borderWidth;
this.capture(content, x, y, w, h);
this.box.removeEventListener('popuphiding', this, false);
this.box.parentNode.removeChild(this.box);
this.resetCursor();
break;
case 'mouseover':
this.target = event.target;
this.highlight();
this.relatedTarget = this.target;
this.statusField.label = this.target.offsetWidth + 'x' + this.target.offsetHeight;
break;
case 'click':
this.relatedTarget = this.target;
this.lowlight();
var win = this.target.ownerDocument.defaultView;
var rect = this.target.getBoundingClientRect();
this.capture(win, rect.left + win.scrollX, rect.top + win.scrollY, rect.width, rect.height, false);
this.browser.removeEventListener('mouseover', this, true);
this.browser.removeEventListener('click', this, true);
break;
case 'popuphiding':
break;
}
event.preventDefault();
event.stopPropagation();
},
highlight: function() {
if (this.relatedTarget)
this.lowlight();
this.defStyle = this.target.getAttribute('style');
this.target.style.setProperty('outline', '2px solid red', 'important');
this.target.style.setProperty('outline-offset', '1px', 'important');
},
lowlight: function() {
if (this.defStyle == null)
this.relatedTarget.removeAttribute('style');
else
this.relatedTarget.setAttribute('style', this.defStyle || '');
},
getWindowList: function() {
this.windowList = (function(win) {
var array = win.document.body instanceof HTMLFrameSetElement? []: [win];
for (var i = 0, l = win.frames.length; i < l; i++) {
array.push.apply(array, arguments.callee(win.frames[i]));
}
return array;
})(window.content);
},
setCursor: function() {
this.rootList = this.windowList.map(function(win) win.document.documentElement);
this.rootList.forEach(function(root) {
root.style.setProperty('cursor', 'crosshair', 'important');
});
},
resetCursor: function() {
this.rootList.forEach(function(root){
if (root)
root.style.setProperty('cursor', '', '');
});
},
capture: function(win, x, y, w, h) {
var tab = gBrowser.addTab("about:support");
var browser = gBrowser.getBrowserForTab(tab);
browser.addEventListener('load', function(event) {
browser.removeEventListener('load', arguments.callee, true);
var doc = browser.contentDocument;
doc.head.innerHTML = doc.body.innerHTML=""
var canvas = doc.body.appendChild(doc.createElement('canvas'));
canvas.style.border = "1px solid red"
canvas.width = w;
canvas.height = h;
var ctx = canvas.getContext("2d");
ctx.drawWindow(win, x, y, x + w, y + h, "rgb(255,255,255)");
gBrowser.selectedTab = tab;
}, true);
},
imageCapture: function(img) {
var base64;
if (img instanceof HTMLCanvasElement) {
base64 = img.toDataURL("image/png");
} else {
var scrollbox = document.createElement('scrollbox');
scrollbox.hidden = true;
document.documentElement.appendChild(scrollbox);
var canvas = scrollbox.appendChild( document.createElementNS('http://www.w3.org/1999/xhtml', 'canvas') );
canvas.style.display = 'inline';
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0);
base64 = canvas.toDataURL("image/png");
scrollbox.parentNode.removeChild(scrollbox);
}
Cc['@mozilla.org/widget/clipboardhelper;1'].getService(Ci.nsIClipboardHelper).copyString(base64);
alert('Copy is Base64 Code.');
},
clickCapture: function() {
this.browser.addEventListener('mouseover', this, true);
this.browser.addEventListener('click', this, true);
},
clippingCapture: function() {
this.box = document.createElement('tooltip');
this.box.style.cssText = [
'-moz-appearance: none;',
'background-color: rgba(0, 0, 0, 0.05);',
'max-width: none;',
'padding: 0;',
'margin: 0;',
'border: 1px dashed #00FF00;',
'cursor: crosshair;'
].join(' ');
this.box.width = 1;
this.box.height = 1;
document.getElementById('mainPopupSet').appendChild(this.box);
this.browser.addEventListener('mousedown', this, true);
this.box.addEventListener('popuphiding', this, false);
this.getWindowList();
this.setCursor();
},
pageCapture: function() {
this.capture(content, content.scrollX, content.scrollY, content.innerWidth, content.innerHeight);
},
fullCapture: function() {
this.capture(content, 0, 0, content.innerWidth + content.scrollMaxX, content.innerHeight + content.scrollMaxY);
},
};
]]></script>
</overlay>
Alles anzeigen
leider funktionierte die Funktion Freie Markierung nicht mehr richtig. Er zeichnet dabei einen leicht versetzten Ausschnitt auf.
Für eure Zeit und Hilfe wie immer vielen Dank vorweg.