Wie füge ich JS im After Header hinzu?

Hallo!

Ich möchte ein Skript zu „After Header“ in meiner Theme-Komponente hinzufügen, aber es funktioniert nicht.

Code:

<button type="button" class="btn btn-outline btn-small" id="Send">Send</button>

<script>
var btn = document.querySelector('#Send');

btn.addEventListener('click', function(e) {
  e.preventDefault();
  
  this.disabled = true;
  
  setTimeout(function(){ btn.disabled=false; }, 10000);
});
</script>

Der Code funktioniert in anderen Blöcken (Head, Body), aber ich muss ihn in After Header hinzufügen.

Bitte helfen Sie mir, wie kann ich das tun?

Fügen Sie das Skript in den Header und den Button nach dem Header ein.

Ich versuche, einen Button zu after header hinzuzufügen, und Code mit einem Skript zu header. Ich sehe den Button, aber das Skript funktioniert nicht.

Es funktioniert nur, wenn ich den gesamten Code (Button + Skript) in head_tag einfüge, in anderen Abschnitten funktioniert es nicht. Ich muss dies in after_header hinzufügen :frowning:

Das ist einfach nicht möglich. Beachten Sie, dass die Entwickleranleitung erwähnt, dass Sie nur drei Optionen für das Auslösen von Skript-Tags haben:

Gibt es einen bestimmten Grund, warum Sie den Code im after_header benötigen? Es gibt möglicherweise andere Ansätze, die Sie verfolgen können, um das zu erreichen, was Sie benötigen.

Als Sie versuchten, das Skript im Head und den Button im after_header zu trennen, sind Sie sicher, dass das Skript überhaupt nicht ausgelöst wird, oder können Sie den Button nicht auswählen? Es könnte am Ember Runloop liegen.

Vielleicht können Sie versuchen, Ihr Skript in ein

<script type="text/discourse-plugin" version="0.8" >
api.onPageChange(() => {
   var btn = document.querySelector('#Send');

   btn.addEventListener('click', function(e) {
     e.preventDefault();
  
    this.disabled = true;
  
     setTimeout(function(){ btn.disabled=false; }, 10000);
   });

});
</script>

einwickeln.

3 „Gefällt mir“

Ich habe die Lösung hier gefunden: Add custom content that only appears on your homepage

Danke :slight_smile:

2 „Gefällt mir“