Erstellen Sie ein Lesezeichen in Python

Dies ist der erste Beitrag Ich habe ein Lesezeichen erstellt, das mit Code funktioniert, der mit Brython in Python geschrieben wurde Die zweite Hälfte ist nur Code Golf

Was ist Brython?

http://qiita.com/ryo_grid/items/5e34220ed48f4580126d Das war sehr hilfreich.

Es gibt Nachfrage

(Möglicherweise nicht

Ich habe es vorerst geschrieben

bookmarklet


javascript:
(function() {
  var py = document.createElement('script');
  py.type = 'text/python';
  py.src = 'https://example/script.py';
  document.body.appendChild(py);
  var br = document.createElement('script');
  br.src = 'https://example/brython.js';
  br.onload = function() {
    brython();
  };
  document.body.appendChild(br);
})();

/script.py


from browser import alert

alert("Hello World!")

Der Mechanismus ist einfach, kurz vor "</ body>"

<script type="text/python" src="https://example/script.py"></script>
<script src="https://example/brython.js"></script>

Fügt nur hinzu Rufen Sie nach dem Laden von brython.js`` brython () mit dem Attribut onload auf, um das Skript text / python auf der Seite auszuführen.

Domänenübergreifendes Problem

Brython verwendet Ajax, um externe Skripte zu laden Daher gibt es ein schwerwiegendes Problem, dass das Lesezeichen nur auf der Seite des Servers funktioniert, auf der sich das Skript befindet. Also habe ich es gelöst, indem ich dem HTTP-Header "Access-Control-Allow-Origin: *" hinzugefügt habe

verkürzen

Es ist ein Lesezeichen, also sollte es kürzer sein (?)

Lassen Sie die Deklaration weg und ändern Sie den Variablennamen in ein Zeichen

Fügen Sie das Dokument auch in die Variable ein

javascript:
(function(d,p,b) {
  p = d.createElement('script');
  p.type = 'text/python';
  p.src = 'https://example/script.py';
  d.body.appendChild(p);
  b = d.createElement('script');
  b.src = 'https://example/brython.js';
  b.onload = function() {
    brython();
  };
  d.body.appendChild(b);
})(document);

Wiederholung

Aufruf mit argument.callee, da kein Funktionsname vorhanden ist (Wenn Sie einen Funktionsnamen angeben, wird ein Leerzeichen eingefügt, das nicht als Lesezeichen geeignet ist.) Verwenden Sie den ternären Operator ohne if-Anweisung

javascript:
(function d(d,u,c,e) {
  e = d.createElement('script');
  e.src = u + (c ? 'brython.js' : 'script.py');
  c ? (arguments.callee(d,u), e.onload = function() {
    brython();
  }) : (e.type = 'text/python');
  d.body.appendChild(e);
})(document,'https://example/',1);

Leerzeichen entfernen, Zeilenumbrüche

javascript:(function d(d,u,c,e) {e=d.createElement('script');e.src=u+(c?'brython.js':'script.py');c?(arguments.callee(d,u),e.onload=function(){brython();}):(e.type='text/python');d.body.appendChild(e);})(document,'https://example/',1);

330 Zeichen => 235 Zeichen Ich denke, es ist noch eine lange Zeit, aber es scheint die Grenze meiner Technologie zu sein

Es ist vorbei, ein gutes Python-Leben!

Recommended Posts

Erstellen Sie ein Lesezeichen in Python
Lassen Sie uns eine Kombinationsberechnung mit Python durchführen
Kopieren Sie die Liste in Python
Mach ein Janken-Spiel in einer Zeile (Python)
Machen Sie mit Python eine Joyplot-ähnliche Handlung von R.
Machen Sie einen Screenshot in Python
Erstellen Sie eine Funktion in Python
Mach nicht test.py in Python!
Machen Sie eine Lotterie mit Python
Stellen Sie Opencv in Python zur Verfügung
Segfo Python in 2 Zeilen
Zeichne ein Herz in Python
Versuchen Sie, ein Python-Modul in C-Sprache zu erstellen
Erstellen Sie einen einfachen Slackbot mit einer interaktiven Schaltfläche in Python
Wahrscheinlich in einer Nishiki-Schlange (Originaltitel: Vielleicht in Python)
Schreiben Sie eine Dichotomie in Python
Segfo Python in einer Zeile
[Python] Verwalten Sie Funktionen in einer Liste
Drücken Sie einen Befehl in Python (Windows)
Erstellen Sie einen DI-Container mit Python
Lassen Sie uns eine GUI mit Python erstellen.
Zeichnen Sie eine Streudiagrammmatrix mit Python
ABC166 in Python A ~ C Problem
Schreiben Sie A * (A-Stern) -Algorithmen in Python
Machen Sie die Standardausgabe in Python nicht blockierend
Python / Machen Sie ein Diktat aus einer Liste.
[Python] Machen Sie die Funktion zu einer Lambda-Funktion
Erstellen Sie ein Empfehlungssystem mit Python
Löse ABC036 A ~ C mit Python
Schreiben Sie ein Kreisdiagramm in Python
Schreiben Sie das Vim-Plugin in Python
Schreiben Sie eine Suche mit Tiefenpriorität in Python
Segfo Python in drei Zeilen
Implementierung eines einfachen Algorithmus in Python 2
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Löse ABC037 A ~ C mit Python
Führen Sie einen einfachen Algorithmus in Python aus
Zeichnen Sie ein CNN-Diagramm in Python
Machen Sie einen Vorhanggenerator mit Blender
Erstellen Sie eine zufällige Zeichenfolge in Python
Beim Schreiben eines Programms in Python
Erstellen Sie eine Multiplikationstabelle für jedes Element in einer Tabelle (Python).
Machen wir einen Spot Sale Service 4 (in Python Mini Hack-a-thon)
Ich habe eine Stoppuhr mit tkinter mit Python gemacht
Ich möchte eine schöne Ergänzung zu input () in Python hinzufügen
Generieren Sie eine erstklassige Sammlung in Python
Quadtree in Python --2
CURL in Python
Metaprogrammierung mit Python
Spiralbuch in Python! Python mit einem Spiralbuch! (Kapitel 14 ~)
Löse ABC175 A, B, C mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Verwenden Sie print in Python2 lambda expression
Lassen Sie uns mit Python ein Shiritori-Spiel machen
Erstellen Sie mit Python eine GIF-Animation für ASCII-Grafiken
Führen Sie eine nicht rekursive Euler-Tour in Python durch
Metaanalyse in Python