2016-08-05 75 views
0

Ich experimentiere mit einer Firefox-Erweiterung, die eine beliebige URL lädt (nur über HTTP oder HTTPS), wenn bestimmte Bedingungen erfüllt sind.Gibt es eine einfache Möglichkeit, auf einer lokalen Webseite eine in der URL übergebene Variable anzuzeigen?

Unter bestimmten Bedingungen möchte ich nur eine Nachricht anzeigen, anstatt eine URL aus dem Internet anzufordern.

Ich dachte daran, einfach eine lokale Webseite zu hosten, die die Nachricht anzeigen würde. Der Catch ist, dass die Nachricht eine Variable enthalten muss.

Gibt es eine einfache Möglichkeit, eine lokale Webseite zu erstellen, so dass es eine Variable anzeigen kann, die in der URL übergeben wird? Ich würde es vorziehen, nur HTML und CSS zu verwenden, aber das Hinzufügen eines kleinen Inline-Javascript wäre in Ordnung, wenn es unbedingt benötigt wird.

Als einfaches Beispiel, wenn die Erweiterung so etwas wie nennt:

folder/messageoutput.html?t=Text%20to%20display

würde ich gerne sehen:

Nachricht: Text anzuzeigen

gezeigt in das Ansichtsfenster des Browsers.

+0

Wenn Sie eine Nachricht von einem Add-on in eine Browser-Seite angezeigt werden soll, ist der einfachste Weg, wäre es, aus Ihrem JavaScript-Code einen bestimmten Tab zu erstellen/wiederzuverwenden und dann Ihre Nachricht darin zu schreiben? – technico

+0

Sind Sie wirklich gegen die Verwendung von PHP?Es ist so einfach wie $ _GET ['t'], wobei t der Name Ihrer Variablen ist. – zsawaf

+0

@zsawaf Müsste das einen PHP-Server ausführen? – RockPaperLizard

Antwort

1

Sie können die "Suche" Eigenschaft des Location-Objekt verwenden, um die Variablen aus dem Ende Ihrer URL zu extrahieren:

var a = window.location.search; 

In Ihrem Beispiel ein Wille gleich „t = Text% 20to% 20display? ".

Als nächstes möchten Sie das führende Fragezeichen vom Anfang der Zeichenfolge entfernen. Die if-Anweisung ist nur für den Fall der Browser nicht in der Suche Eigenschaft nicht enthalten:

var s = a.substr(0, 1); 
if(s == "?"){s = substr(1);} 

Gerade falls Sie mit mehr als einer Variablen eine URL erhalten, können Sie den Query-String an Et-Zeichen aufteilen wollen ein Array von Zeichenkette Paar Name-Wert erzeugen:

var R = s.split("&"); 

Anschließend spaltete die Name-Wert-Paar Saiten an dem Gleichheitszeichen die Namen vom Wert zu trennen. Speichern Sie den Namen als Schlüssel für ein Array und den Wert als Array-Wert für den Schlüssel:

Fast fertig. Rufen Sie den Wert mit dem Namen "t":

var t = NVP['t']; 

Last, den variablen Text in das Dokument einfügen. Ein einfaches Beispiel (das müssen gezwickt werden, um Ihre Dokumentstruktur übereinstimmen) ist:

var containingDiv = document.getElementById("divToShowMessage"); 
var tn = document.createTextNode(t); 
containingDiv.appendChild(tn); 
1

getArg('t');

function getArg(param) { 
    var vars = {}; 
    window.location.href.replace(location.hash, '').replace( 
     /[?&]+([^=&]+)=?([^&]*)?/gi, // regexp 
     function(m, key, value) { // callback 
     vars[key] = value !== undefined ? value : ''; 
     } 
    ); 
    if (param) { 
     return vars[param] ? vars[param] : null; 
    } 
    return vars; 
    }