WebWorker выполняется с областью, полностью отделенной от контекста "окна" традиционного JavaScript. Существует ли стандартный способ для script определить, является ли он сам, исполняемым как WebWorker?
Первый "хак", о котором я могу думать, заключается в обнаружении свойства "окна" в сфере действия рабочего. Если отсутствует, это может означать, что мы выполняем роль WebWorker.
Дополнительные параметры: обнаружение свойств, не присутствующих в стандартном контексте "окна" . Для Chrome 14 этот список в настоящее время включает в себя:
FileReaderSync
FileException
WorkerLocation
importScripts
openDatabaseSync
webkitRequestFileSystemSync
webkitResolveLocalFileSystemSyncURL
Обнаружение WorkerLocation кажется жизнеспособным кандидатом, но это все еще кажется немного хакерским. Есть ли способ лучше?
EDIT: Здесь - это JSFiddle, который я использовал для определения свойств, присутствующих в исполняющем WebWorker, которые теперь находятся в "окне".