Ich möchte eine (chrome) Benachrichtigung mit Text erstellen, und ich kann auf die Benachrichtigung klicken, die zu der Seite weitergeleitet werden soll, die die Benachrichtigung ausgegeben hat. Hier ist die nächste, die ich bekommen habe, und bemerke, dass es sehr nicht-idiomatisch ist. Ich musste js*
(js Stern) verwenden, für die ich Dokumente nicht finden kann, aber es führt gerade eine Zeichenkette von Javascript aus.Wie kann ich eine js/Notification in ClojureScript erstellen, die sich auf das Fenster konzentrieren kann?
(js* " var notification = new Notification('Here is the title', {
icon: 'http://path.to/my/icon.png',
body: 'Some body text',
});
notification.onclick = function() {
console.log('hi there');
this.close();
window.focus();
};")
Hinweis, die log
Werke, die close
funktioniert, aber die window.focus()
nicht. Wenn Sie den js-Teil dieses Codes in die Konsole Ihres Browsers kopieren und hinterlegen, funktioniert funktioniert.
ich glaube, die richtige Antwort wie die folgende aussehen sollte, aber die onclick
überhaupt nicht arbeiten für jede Funktion:
(new js/Notification "Here is the title"
(clj->js {:body "(click to vist page)"
:onclick #(.focus js/window)}))
EDIT: Wenn Sie in der folgenden (sagen wir geben, in figwheel), js/window
hat definitiv eine focus
param. Offensichtliche, aber ich gerade überprüft, aber es funktioniert nicht, wenn sie mit (.focus js/window)
genannt:
(.keys js/Object js/window)
Diese konzentrieren sich nicht selbst arbeiten:
(js* "window.focus()")
Und ich kann nicht scheinen zu finden, jede angebracht Schlüssel zum js/Notification
onclick
Funktion zu erhalten:
(.keys js/Object (new js/Notification "hi" (clj->js {:body "body text"})))
ich muss etwas falsch machen, aber was?
Süße! 'onclick' funktioniert total! Danke Danke! Hm, das '(.focus js/window)' scheint nicht zu funktionieren, irgendeine Idee, warum 'window.focus()' funktioniert (in js), aber nicht die cljs? –