Support » Fixing WordPress » JavaScript:window.open() but: “headers already sent”

  • Resolved thomasgericke

    (@thomasgericke)


    English // Deutsch

    Hi there, // hallo zusammen,

    I want to call a JavaScript:window.open() under certain circumstances on an admin page in a plugin. Therefore, I use the admin_head-hook to inject some SCRIPT stuff into the header part. Works well. // Ich möchte unter bestimmten Umständen auf einer Admin-Seite durch ein plugin einen JavaScript:window.open()-Aufruf starten. Dazu benutze ich den admin_head-hook, um SCRIPT-Kram in den Header einzufügen. Das funktioniert auch:

    function uf_add_popup($fake) {
    
          echo "<SCRIPT TYPE='text/javascript'>";
          echo "    function PopUp(URL) {";
          echo "        window.open(URL, '', ...);";
          echo "    }";
          echo "</SCRIPT>";
    
    }
    
    add_action ('admin_head', 'uf_add_popup');

    The <HEAD> part looks okay. // Der <HEAD>-Teil schaut gut aus.

    BUT: later in that plugin, I want to call the JS function, which has been defined in the header and I need to pass some content (an URL) to it. Unfortunately, I cannot pass additional parameters to admin_head, so I tried to simply call the JS function. // ABER: später möchte ich in diesem Plugin die JS-Funktion, welche im Header definiert wurde, aufrufen und ihr Inhalte (eine URL) übergeben. Leider kann man admin_head keine Parameter übergeben, also rufe ich die JS-Funktion einfach auf:

    echo "<JavaScript:PopUp('http://some.url/whatever/')>";

    WordPress says: “headers already sent”, so it simply does not work. The problem is, “whatever” is some string, I cannot call directly in the FS function above, because it’s created dynamically. // WordPress sagt dann: “headers already sent”, also klappt das so nicht. Das Problem ist, dass “whatever” ein String ist, den ich nicht direkt in der obigen JS-Funktion aufrufen kann, da er dynamisch generiert wird.

    The question is: how to first define a JS function and later call it? // Die Frage ist: wie definiert man erst eine JS-Funktion und ruft sie erst später auf?

    Thanks for your support. // Danke für die Unterstützung.

    Thomas

Viewing 1 replies (of 1 total)
Viewing 1 replies (of 1 total)
  • The topic ‘JavaScript:window.open() but: “headers already sent”’ is closed to new replies.