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
http://qiita.com/ryo_grid/items/5e34220ed48f4580126d Das war sehr hilfreich.
(Möglicherweise nicht
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.
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
Es ist ein Lesezeichen, also sollte es kürzer sein (?)
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);
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);
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