2016-11-29 1 views
0

HTMLファイル

<!DOCTYPE html> 
    <html> 
    <head> 

     <title></title>]]] 
     <meta charset="utf-8" /> 
     <script type="text/javascript"> 
      function syncMe() { 
       debugger; 
       var worker = new Worker("Scripts/dowork.js"); 
       worker.addEventListener("message", function (evt) { 
        debugger; 
        alert(evt.data); 
       }); 
       worker.postMessage(txtname.value); 
      } 

     </script> 
    </head> 

<body> 
    <label for="Name">Name</label> 

    <input type="text" id="txtname" /> 
    <input type="button" id="btnName" value="submit" onclick="syncMe()" /> 

</body> 
</html> 

JSファイルここ

self.addEventListener('message', function (e) { 
    self.postMessage(e.data); 
}, false); 

は、JSファイルにHTMLファイルからworker.postmessage('txtname.value')によって静的な値を渡しています。しかし、スレッドメソッド、つまりJSファイルから値または要素にアクセスしたいと思います。webworkerを使用して制御値(または)要素を取得する方法は?

+1

ウェブワーカーから「dom」にアクセスすることはできません。 – brk

+0

単純に 'document.getElementById(" txtname ")。onchange = function(e){worker.postMessage(this.value); } '? – Bergi

答えて

0

WebワーカーはDOMにアクセスできないため、メインJSスレッドでDOM関連の作業を行うか、ワーカーに静的な値を渡す必要があります。

あなたの値が変更された場合は、必要があります。

  • は、あなたの要素の「変更」イベントにリスナーを追加します。
  • Mozilla.orgから、messageリスナー

リファレンスで更新されたデータを処理するための関数を書くワーカー

  • に更新された値を持つ別のmessageイベントを送信:

    あなたは何でも実行することができますワーカースレッドの中で好きなコードには、いくつかの 例外があります。たとえば、ワーカーの内部で からDOMを直接操作することはできません。または、 ウィンドウオブジェクトの既定のメソッドとプロパティを使用できます。

  • +0

    plz ...プログラムで説明することができます... – khanna

    関連する問題