Zugriff auf dom von web-worker

Ich bin verrückt und brauche Ihre Hilfe.
Ich arbeite an einer serviceworker Projekt und ich bin den Umgang mit einem javascript-problem. Ich habe zwei wichtigsten Dateien. Die server.html - Datei, in die ich rufen Sie die externe service-worker.js Datei in Zeile 52.
Hier ist mein server.html Datei

<body>
    <div class="container"> 
        <h1>PRESENTER</h1>
        <div id="nicky">Nickname: <span id="nickname"></span></div>
        <form id="form-nick" name="form-nick" method="post" action="">
            <div class="formelement">
                <label name="labelnick" for="nick">Nickname:</label>
                <input type="text" id="nick" name="nick">
                <button type="submit">OK</button>
            </div>
        </form><br /><br />

        <h1>--></h1><div id="talker"></div>

        <button type="button" class="button blue" id="blue-display" disabled></button><br />

        <button type="button" class="button red" disabled></button><br />

        <button type="button" class="button lightblue" disabled></button>
    </div> <!-- container -->


    <script type="text/javascript">
        $(document).ready(function() {
            console.log("jquery ready function");

            $('#nick').focus();

            $('#form-nick').submit(function(){
                var form = $('#form-nick');
                var data = form.serialize();
                $.post('nicky.php', data, function(response) {
                    if (response) {
                        $('#nicky').show();
                        $('#nickname').text(response);
                        $('#form-nick').hide();
                        $('.blue, .red, .lightblue').fadeIn(100);

                        if('serviceWorker' in navigator){
                            //Register service worker
                            navigator.serviceWorker.register('service-worker.js').then(function(reg){
                                console.log("SW registration succeeded. Scope is "+reg.scope);

                            }).catch(function(err){
                                console.error("SW registration failed with error "+err);
                            });
                        }
                    } else {

                    }
                });
                return false;           
            });       
        });
    </script>
</body>

und hier ist die service-worker.js Datei

//Install Service Worker
self.addEventListener('install', function(event){
    console.log('>> sw installed!');
});
//Service Worker Active
self.addEventListener('activate', function(event){
    console.log('>> sw activated!');
});
//Service Worker reveives message
self.addEventListener('message', function(event){
    console.log(event.data);
    send_message_to_all_clients(event.data);
    document.getElementById("talker").innerHTML = event.data;
});

In der letzten Zeile würde ich gerne einfügen der empfangenen Nachricht in das div "talker". Aber ich bekomme immer den Fehler service-Arbeiter.js:17 " Uncaught ReferenceError: document ist nicht definiert

Passte ich auf, dass ich laden Sie die js-Datei, nachdem das Dokument geladen ist.
Jetzt weiß ich nicht was ich falsch mache.
Danke.

Code in einem service-Mitarbeiter keinen Zugriff auf ein Dokument.
Was ist Ihr Ziel mit einem service-Mitarbeiter? Im Gegensatz zu einem shared-Arbeiter, oder einfach nur ein Sammler?

InformationsquelleAutor Raphael | 2016-06-08

Schreibe einen Kommentar