var newWorkerViaBlob = function(relativePath) {
  var baseURL = window.location.href.replace(/\\/g, '/').replace(/\/[^\/]*$/, '/');
  var array = ['importScripts("' + baseURL + relativePath + '");'];
  var blob  = new Blob(array, {type: 'text/javascript'});
  var url   = window.URL.createObjectURL(blob);
  return new Worker(url);
};

const worker = new newWorkerViaBlob("worker.js");

// worker.jsからのメッセージ受信イベント
worker.addEventListener(
  "message",
  (e) => {
    console.log(e.data);
  },
  false
);

worker.postMessage("First message.");
// 2回目のメッセージを追加
worker.postMessage("ABC");

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.