Welche Firefox-Funktionen verwende ich zum Umschreiben und Öffnen der URL der aktiven Seite?

2645
Egon Willighagen

Unsere Universität bietet einen Proxy-Service, mit dem ich Websites so durchsuchen kann, als wäre ich online über das Universitätsnetzwerk. So faul ich auch bin, ich bin es leid, zum URL-Bearbeitungsfeld in Firefox zu gehen und das https://superuser.com/ in http://superuser.com.ezproxy.its.uu.se/ zu ändern und das zu öffnen neue URL

Stattdessen klicke ich lieber auf eine Schaltfläche in meinem Firefox- Fenster. Daher frage ich mich, wie ich eine solche Funktionalität erstellen kann. Ich freue mich über Userscript, Ubiquity oder ein Add-On als Lösung: Welche Firefox-Funktionen sollte ich verwenden, um ezproxy.its.uu.se an den Domain-Teil einer beliebigen URL anzuhängen und diese neue URL zu öffnen?

3
Nur das Umschreiben des einen zum anderen macht nicht genug Spaß. Sagen Sie uns also bitte, wie die URL für solche Seiten aussehen würde. Arjan vor 13 Jahren 0
Genau wie in diesem Beispiel muss nur die Domäne geändert werden. Die URL für diese Frage lautet also: http://superuser.com.ezproxy.its.uu.se/questions/154689/how-can-i-add- a-button-to-firefox-das wird umschreiben und die url-of-the-a öffnen Egon Willighagen vor 13 Jahren 0

4 Antworten auf die Frage

9
Arjan

Ändern Sie den Speicherort, indem Sie Folgendes als Lesezeichen speichern :

javascript:(function(){ location.href = location.href.replace( location.hostname, location.hostname + '.ezproxy.its.uu.se' ); })() 

Allerdings müssen Sie Firefox zunächst dazu auffordern, die ursprüngliche URL zu laden (also müssen Sie in der Positionsleiste die Eingabetaste drücken), um das Standortobjekt aufzufüllen. Anstatt zur Eingabe einer URL aufgefordert zu werden, anstatt zuerst Ihren Browser zu laden (versuchen Sie, ihn zu laden):

javascript:(function(){ var url = prompt('Type URL to browse'); var suffix = '.ezproxy.its.uu.se';  /* Don't know how the proxy would handle https or specific ports; * let's just copy them... * $1 = optional protocol, like 'http[s]://' * $2 = domain, like 'superuser.com' * $3 = optional port, like ':8080' * $4 = rest of the URL, like '/questions/154689/ .. page/154692#154692' */ url = url.replace( /(\w*:\/\/)?([^:\/]*)(:[0-9]*)?(.*)/, '$1$2' + suffix + '$3$4' ); if(url.indexOf('http') != 0){ url = 'http://' + url; } location.href = url; })() 


Sobald Sie zur Verwendung des Proxys gewechselt haben, können Sie mit jQuery magic jede Stelle im HTML-Code umschreiben, die vom Proxy bereitgestellt wird. Dies ist jedoch nur dann erforderlich, wenn dies für Sie nicht sofort erledigt wird. Um als Benutzerskript (wie für Greasemonkey ) gespeichert zu werden, muss zunächst mit etwas Code sichergestellt werden, dass jQuery verfügbar ist, und nur für die Domäne Ihres Proxyservers (also nur beim Durchsuchen dieses Proxys) enthalten sein:

// ==UserScript== // @name Rewrite URLs to use proxy // @namespace http://superuser.com/questions/154689/ // @description Rewrites absolute URLs to use proxy // @include http://*.ezproxy.its.uu.se/* // ==/UserScript==  var $; var suffix = '.ezproxy.its.uu.se';  // Rewrites an attribute to include the proxy server address, if a full // domain is specified in that attribute. function rewriteAttr(attrName){ $('[' + attrName + ']').attr(attrName, function(){ // Don't know how the proxy would handle https or specific ports; // let's just copy them... // $1 = protocol, like 'http[s]://' // $2 = domain, like 'superuser.com' // $3 = optional port, like ':8080' // $4 = rest of the URL, like '/questions/154689/ .. page/154692#154692' return $(this).attr(attrName).replace( /(\w*:\/\/)([^:\/]*)(:[0-9]*)?(.*)/, '$1$2' + suffix + '$3$4' ); }); }  // Rewrite anchors such a <a href="http://superuser.com/xyz"> and references // like <link rel="stylesheet" href="http://sstatic.net/su/all.css"> function letsJQuery() { rewriteAttr('href'); rewriteAttr('src'); }  // Loads jQuery if required.  // See http://joanpiedra.com/jquery/greasemonkey/ (function(){ if (typeof unsafeWindow.jQuery == 'undefined') { var GM_Head = document.getElementsByTagName('head')[0]  || document.documentElement; var GM_JQ = document.createElement('script');  GM_JQ.src =  'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js'; GM_JQ.type = 'text/javascript'; GM_JQ.async = true;  GM_Head.insertBefore(GM_JQ, GM_Head.firstChild); } GM_wait(); })();  // Check if jQuery's loaded function GM_wait() { if (typeof unsafeWindow.jQuery == 'undefined') { window.setTimeout(GM_wait, 100); } else { $ = unsafeWindow.jQuery.noConflict(true); letsJQuery(); } } 
Ich bin faul, ich weiß. Wie erstelle und speichere ich ein Bookmarklet? Egon Willighagen vor 13 Jahren 1
OK, das herausgefunden: Lesezeichen -> Lesezeichen organisieren; Wählen Sie dann Lesezeichen-Symbolleiste, klicken Sie mit der rechten Maustaste auf die Liste der Elemente und wählen Sie Neu. Dann kopiere ich einfach den obigen Code als URL. Egon Willighagen vor 13 Jahren 0
@Egon, ok! Zur späteren Bezugnahme habe ich auch einen Link zu ["Speichern des folgenden als Bookmarklet"] (http://subsimple.com/bookmarklets/jsbuilder.htm) hinzugefügt und ein paar weitere Überarbeitungen für den Fall vorgenommen, dass der Proxy dies nicht tun würde für dich - aber ich vermute, das macht das on the fly. Arjan vor 13 Jahren 0
@Egon, ich habe gerade festgestellt, dass das Bookmarklet für URLs, die Ihr Browser noch nicht geladen hat, möglicherweise nicht funktioniert? Ich habe eine weitere Option hinzugefügt ... :-) Arjan vor 13 Jahren 0
Vielen Dank für jedes Detail. Der Stellvertreter schreibt tatsächlich alles schön um. Mein praktischer Anwendungsfall sind wissenschaftliche Arbeiten. Normalerweise landen Sie auf einer Journal-Homepage mit der Zusammenfassung vor Ihnen, aber das PDF-Dokument kann nicht von außerhalb des Universitätsnetzwerks heruntergeladen werden ... Daher ist die URL normalerweise bereits geladen und Ihre erste Lösung funktioniert gut! Danke! Egon Willighagen vor 13 Jahren 0
2
Peter Murray

Sie können auch einen Blick auf LibX - "Ein Browser-Plugin für Bibliotheken" werfen, das diese Art von Funktion automatisch für Sie ausführen kann:

Zugriff außerhalb des Campus über EZProxy oder WAM

Unterstützung für den Zugriff außerhalb des Campus auf lizenzierte Ressourcen, wenn Ihre Institution EZ Proxy oder WAM von III verwendet. Sie können eine Seite über den Proxy neu laden oder einem Link über den Proxy folgen, so dass es aussieht, als kämen Sie von einem Computer auf dem Campus. Mit dieser Funktion können Sie auf Ressourcen zugreifen, zu denen nur Benutzer auf dem Campus Zugang haben. Sie können EZProxy so einrichten, dass LibX automatisch erkennt, ob eine Seite weitergeleitet werden kann.

Tatsächlich nett! (@Egon, Sie können die akzeptierte Antwort leicht ändern, wenn Sie möchten!) Arjan vor 13 Jahren 0
Vielen Dank, dass Sie die Blockquote mit der Funktionsbeschreibung hinzugefügt haben, Arjan! Peter Murray vor 13 Jahren 0
Obwohl ich die JavaScript-Lösung wirklich sehr interessant fand, scheint dies tatsächlich eine bessere Lösung zu sein. Egon Willighagen vor 13 Jahren 0
0
URLParser.com

Wie wäre die Verwendung von URL - Parser Firefox - Add-on .

Oder verwenden Sie das Bookmarklet von urlparser.com/bookmarklet .

-1
Chris Noe

Dies ist genau die Art von Situation, die ein PAC- Skript (Proxy Auto-Config) lösen soll. Das folgende Skript konfiguriert Firefox so, dass Anforderungen transparent über den lokalen Proxy weitergeleitet werden, ohne dass sie neu geschrieben werden müssen. Speichern Sie diese Datei irgendwo in Ihrem Dateisystem, wechseln Sie in das Dialogfeld Verbindungseinstellungen und geben Sie den Pfad in die Einstellung "Automatische Proxy-Konfigurations-URL" ein. (Dies wird von allen großen Browsern unterstützt, nicht nur von Firefox.)

function FindProxyForURL(url, host) { return "com.ezproxy.its.uu.se"; } 

Dies ist eine Javascript-Funktion, daher ist auch eine bedingte Logik möglich.

Ich denke, Sie haben den Punkt verpasst, dass dies kein Proxy-Server ist, den Sie verwenden, indem Sie den Browser so einstellen, dass eine Verbindung über diesen Proxy hergestellt wird, sondern einen Proxy, den Sie verwenden, indem Sie die URL ändern. njsg vor 11 Jahren 0