im Inspektor
Oben für Fx 127...unten für Nightly 129
Das ist schon unterschiedlich, nur was das bedeutet, da bin ich leider überfragt
im Inspektor
Oben für Fx 127...unten für Nightly 129
Das ist schon unterschiedlich, nur was das bedeutet, da bin ich leider überfragt
Auf die Änderung hatte Speravir schon im Mai aufmerksam gemacht
siehe hier: RE: Links aus Verlauf in neuem Tab öffnen/Tablock-Skript
Aber was man in Firefox 129 noch ändern muss verstehe ich leider auch nicht.
Mfg.
Endor
Der Wert für onpopupshowing für 129 ist bei dir nicht komplett sichtbar. Ich habe mal rechts darauf geklickt und oben XML bearbeiten ausgewählt. Da sieht man folgendes:
<menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" id="historyMenuPopup" placespopup="true" is="places-popup" tooltip="bhTooltip" popupsinherittooltip="true" onpopupshowing="(function() {
let historyMenu = document.getElementById('history-menu');
if (!historyMenu._placesView) {
new HistoryMenu(event);
historyMenu._placesView._onCommand = function HM__onCommand(aEvent) {
let placesNode = aEvent.target._placesNode;
if (placesNode) {
PlacesUIUtils.openNodeWithEvent(placesNode, aEvent);
};
};
};
Alles anzeigen
Ich bin mir aber nicht sicher, ob hier nur etwas aus dem Skript entnommen wurde, aber ich denke mal, das ist der Originalcode.
Als Fehler wird mir dann angezeigt:
Zeile 114 in der utilities.js ist:
der gesamte Textabschnitt ist:
loadScript: function(aFile, aFolder, aRelDirToken) {
setTimeout(function() {
Components.classes["@mozilla.org/moz/jssubscript-loader;1"]
.getService(Components.interfaces.mozIJSSubScriptLoader)
.loadSubScriptWithOptions(userChrome.getURLSpecFromActualFile(aFile),
{target: window,
charset: userChrome.charSet,
ignoreCache: userChrome.ignoreCache});
// log it
userChrome.log(aRelDirToken ? ("[" + aRelDirToken + "]/" +
(aFolder && aFolder != "*" ? aFolder + "/" : "") + aFile.leafName) :
aFile.path, "userChrome.loadScript");
}, 0);
},
Alles anzeigen
Wo da der Hund begraben ist, weiß ich aber auch nicht.
Die Funktion beim Attribut onpopupshowing im Inspektor ist die gleiche, wie sie der Variablen onPopupshowing im Skript zugewiesen ist. Hm.
2002Andreas Ich habe nochmal in die Browser-Konsole gesehen, bei mir ist da kein Fehler wie bei dir in Beitrag #97. Ich nehme mal an, das liegt daran, dass du da noch den Wert goPopup für historyPopup verwendet hast.
das liegt daran
Hallo milupo, danke, du hast recht
Ich habe jetzt im Nightly auch das neue Skript von Endor, und keine Fehlermeldung mehr.
Ich habe auch etwas mit dem Skript herumgebastelt!
Aber ich bekomme es einfach nicht hin, dass aus der Chronik der Menüleiste ein Link in einem neuen Tab sich öffnet.
Nutze ich die Chronik aus dem "Hamburgermenü, funktioniert es.
Hier mein verzweifelter Versuch.
// ==/UserScript==
(function() {
if (location.href !== 'chrome://browser/content/browser.xhtml')
return;
PlacesUIUtils.openNodeWithEvent = function PUIU_openNodeWithEvent(aNode, aEvent) {
let window = aEvent.target.ownerGlobal;
let browserWindow = (window && window.document.documentElement.getAttribute('windowtype') == 'navigator:browser') ? window : BrowserWindowTracker.getTopWindow();
let where = 'tab'; // Always open in a new tab
this._openNodeIn(aNode, where, window);
}
let onPopupshowing = function () {
let historyMenu = document.getElementById('history-menu');
if (!historyMenu._placesView) {
new HistoryMenu(event);
historyMenu._placesView._onCommand = function HM__onCommand(aEvent) {
let placesNode = aEvent.target._placesNode;
if (placesNode) {
PlacesUIUtils.openNodeWithEvent(placesNode, aEvent);
}
}
}
}
let historyPopup = document.getElementById('goPopup');
historyPopup.setAttribute('onpopupshowing', '(' + onPopupshowing.toString() + ')()');
})();
Alles anzeigen
dass aus der Chronik der Menüleiste ein Link in einem neuen Tab sich öffnet
Das ist ja unser aller Problem zur Zeit
aus dem "Hamburgermenü, funktioniert es.
Auch aus der Sidebar und der Bibliothek funktioniert es auch.
Und ich habe eine frohe Botschaft zu verkünden: Das Skript funktioniert jetzt auch im Nightly! Ich hatte diesen Bugreport gefunden. In Comment 4 weist Alice0775 ebenfalls auf dieses Problem hin, obwohl es in diesem Report eigentlich um etwas anderes geht. In Comment 7 wird auf diesen Bugreport verwiesen. Dort wird in Comment 5 auf diese Seite verwiesen:
Dort sind die Zeilen 1134 bis 1174 relevant. Die Änderungen sind in Grün.
Zusatz: Es könnte sein, ihr müsst erst noch ein Update machen.
Das Skript funktioniert jetzt auch im Nightly!
Hallo milupo, dann poste es doch bitte mal hier.
Erspart die Änderungen und evtl. neue Fehler dadurch
Wurde doch schon genannt:
Das funktioniert auch in Firefox Nightly (zumindest unter Windows, unter macOS funktioniert das grundsätzlich nicht). Es war die Nightly-Version von genau einem Tag von dem Problem betroffen. Und die verursachende Änderung wurde am nächsten Tag rückgängig gemacht.
Die ursprünglich verursachende Änderung wird vermutlich im heutigen oder morgigen Nightly-Build wieder vorhanden sein. Aber wenn ich mir den Code-Unterschied zwischen beiden Patch-Versionen ansehe, bin ich optimistisch, dass das Script auch mit der neuen Version des Patches kompatibel sein wird.
Es war die Nightly-Version von genau einem Tag von dem Problem betroffen.
Danke für die Erklärung.
Jetzt funktioniert es hier auch wieder einwandfrei.
2002Andreas Auch aus der Menüleiste?
Aber nur in der Nightly, oder funktioniert es denn auch in der 127?
oder funktioniert es denn auch in der 127?
Ja, und auch in Fx 128
Auch in Firefox 127 128 usw.
Das Skript funktioniert bei mir gar nicht!
Es wird in der Konsole aber auch nix angezeigt!!
Wenn ich das Skript so abändere, funktioniert zwar das Öffnen in einem neuen Tab, wenn ich die Chronik im Hamburgermenü benutze, aber nutze ich die Chronik aus der Menüleiste, öffnet sich die Seite im aktuellen Tab.
(function() {
if (location.href !== 'chrome://browser/content/browser.xhtml')
return;
PlacesUIUtils.openNodeWithEvent = function PUIU_openNodeWithEvent(aNode, aEvent) {
let window = aEvent.target.ownerGlobal;
let browserWindow = (window && window.document.documentElement.getAttribute('windowtype') == 'navigator:browser') ? window : BrowserWindowTracker.getTopWindow();
let where = 'tab'; // Always open in a new tab
this._openNodeIn(aNode, where, window);
}
let onPopupshowing = function () {
let historyMenu = document.getElementById('history-menu');
if (!historyMenu._placesView) {
new HistoryMenu(event);
historyMenu._placesView._onCommand = function HM__onCommand(aEvent) {
let placesNode = aEvent.target._placesNode;
if (placesNode) {
PlacesUIUtils.openNodeWithEvent(placesNode, aEvent);
}
}
}
}
let historyPopup = document.getElementById('goPopup');
historyPopup.setAttribute('onpopupshowing', '(' + onPopupshowing.toString() + ')()');
})();
Alles anzeigen
Das Skript funktioniert bei mir gar nicht!
Das funktioniert hier:
// ==UserScript==
// @name newtabfromhistory.uc.js
// @namespace https://www.camp-firefox.de/forum/viewtopic.php?p=1090093#p1090093
// @description Links aus Chronik in neuem Tab öffnen
// @author aborix
// @compatibility 95+
// @version 0.0.3a
// ==/UserScript==
(function() {
if (location != 'chrome://browser/content/browser.xhtml')
return;
PlacesUIUtils.openNodeWithEvent = function PUIU_openNodeWithEvent(aNode, aEvent) {
let window = aEvent.target.ownerGlobal;
let browserWindow = (window && window.document.documentElement.getAttribute('windowtype') == 'navigator:browser') ? window : BrowserWindowTracker.getTopWindow();
let where = window.BrowserUtils.whereToOpenLink(aEvent, false, true);
if (this.loadBookmarksInTabs) {
if (where == 'current' && !aNode.uri.startsWith('javascript:')) {
where = 'tab';
}
if (where == 'tab' && browserWindow.gBrowser.selectedTab.isEmpty) {
where = 'current';
}
}
this._openNodeIn(aNode, where, window);
}
let onPopupshowing = function() {
let historyMenu = document.getElementById('history-menu');
if (!historyMenu._placesView) {
new HistoryMenu(event);
historyMenu._placesView._onCommand = function HM__onCommand(aEvent) {
let placesNode = aEvent.target._placesNode;
if (placesNode) {
PlacesUIUtils.openNodeWithEvent(placesNode, aEvent);
};
};
};
};
let historyPopup = document.getElementById('historyMenuPopup');
historyPopup.setAttribute('onpopupshowing', '(' + onPopupshowing.toString() + ')()');
})();
Alles anzeigen
Das Skript funktioniert bei mir gar nicht!
Das ist ja auch noch die alte Version (goPopup) und nicht die neue, auf die nun schon mehrfach hingewiesen wurde.