• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:HTML5のWebWorkersに詳しい方いません)

HTML5のWebWorkersについて

このQ&Aのポイント
  • WebWorkersを使用したJavaScriptの処理についての質問です。
  • WebWorkersではDOM操作が制限されるため、getElementByIdなどの処理はできません。
  • Google Chromeでデバッグする際には、エラーが出ることがあります。

質問者が選んだベストアンサー

  • ベストアンサー
  • tracer
  • ベストアンサー率41% (255/621)
回答No.1

Web Workersからは、WindowオブジェクトなどのDOMにはアクセスできない仕様のはずです。

noname#157436
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • AjaxでDOM Exception11が出る

    次のようなスクリプトを実行して、隣のディレクトリに配置したxmlをAjaxで取得しようとしています。 var ajaxReq = new XMLHTTPRequest; function loadContents(){ //Ajaxリクエスト ajaxReq.send("GET","xml/contents.xml",handleRequest); //## } が、ブラウザのコンソールで##の行で"INVALID_STATE_ERR: DOM EXCEPTION 11" と出て止まってしまいます。 調べると、利用出来ないオブジェクトにアクセスしようとしている時に出るようなのですが、 これはxmlファイルにアクセス出来ない(見つからない等)ことを意味しているのでしょうか? それともコードそのものに何か欠陥があるのでしょうか? これはGoogle App Engine for Pythonのローカルサーバー上で動かしているのですが、 試しに純粋なローカル環境で試すとfirefoxのコンソールには uncaught exception: [Exception... "Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsIXMLHttpRequest.send]" nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)" location: "JS frame :: file:///Users/user/gek/s100/HTTP.js :: loadContents :: line 23" data: no] と出ます。これについてはそもそもローカルだからAjaxのリクエストが出来ないのだろうかという点も疑問です。

  • Thunderbird メール通知音の指定が出来ない

    Thunderbird 2.0.0.0 でメール着信の通知音を指定したいのですが、 ツール > オプション > 一般 > 次のサウンドファイルを指定するにチェック > 参照 と進んでも参照ダイアログが開かずwavファイルを指定できません。 エラーコンソールには エラー: uncaught exception: [Exception... "Component returned failure code: 0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH) [nsIFileProtocolHandler.getFileFromURLSpec]" nsresult: "0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH)" location: "JS frame :: chrome://messenger/content/preferences/general.js :: anonymous :: line 110" data: no] と出ています。 どう対処すればよいかご存知の方はいらっしゃいますか?

  • HTMLに詳しい方に質問です

    ここのサイト http://openlab.ring.gr.jp/k16/htmllint/htmllint.html を使ってチェックしたらこんなエラーが出ました。どうすれば治りますか? ツイッターボタンHTML↓ <a href="https://twitter.com/share" class="twitter-share-button" data-via="アカウント名" data-lang="ja" data-count="none">ツイート</a> <script type="text/javascript"> <!-- !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs"); // --> </script> エラー↓ 6: line 68: <A> に不明な属性 `DATA-VIA` が指定されています。 6: line 68: <A> に不明な属性 `DATA-LANG` が指定されています。 6: line 68: <A> に不明な属性 `DATA-COUNT` が指定されています。

  • 関数について。FireFoxで動作しません

    JavaScriptの関数について質問があります。 var makeFunc = function(){ return function(){ alert(); } } var a = makeFunc(); alert(typeof a);//function a();//FireFoxではエラー IEでは、aを関数として実行できるのですが、FireFoxでは エラーが出てしまいます。ちなみにIE、FireFox共にtypeof では"function"と表示されました。 エラーの原因と改善策を教えてください。よろしくお願いします。 FireFoxのエラー: uncaught exception:[Exception "Not enough arguments [nsIDOMWindowInternal.alert]"

  • サンダーバード OSを再起動したらデータが消えた?

    サンダーバードの2.0.0.19を使用しています。 本日、windowsの重要な更新を実行したところ、OSが自動で再起動されました。 再起動後、スタートアップでサンダーバードが起動すると、「アカウント設定してください」の 画面が出て、本来のアカウントでメール機能を使うことができなくなってしまいました。 エラーコンソールでは次のように出ています。 ↓ エラー: uncaught exception: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIMsgAccountManager.localFoldersServer]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://sl8tr/content/backgrounding.js :: CheckForSendLater :: line 326" data: no] %APPDATA%\Thunderbird\Profiles\ フォルダは存在しており、フォルダ容量も600MB程度 あるため、データ自体が消えたわけではなさそうですが、何らかの拍子にアカウント設定を 読み込めなくなってしまったのでしょうか。 対処方法をご存じの方、教えてください。

  • jsがアップロードしても反映されない。エラーが出る

    デスクトップ上でwebサイトをTwitter bootstrapのフレームワークを使いながら構築しました。ローカル上は何の問題もなかったのですが、サーバーにアップロードした途端に、jsが全く動きません。 アクセス権は大丈夫です。 以下のエラーがサーバーにアップした途端にでるようになりました。 bootstrap.min.js:1 Uncaught TypeError: undefined is not a function index.html:175   Uncaught TypeError: Object [object Object] has no method 'tooltip' デスクトップでは問題なくbootstrapのjsが動作しましたが、サーバーに上げるとダメです。 なぜだかさっぱりわかりません。 助けてください

    • 締切済み
    • CSS
  • なぜ文字列はappenchild出来ないのか?

    javascriptの話になります。 let test_div = document.getElementById("test_div"); let obj = "文字列"; test_div.appendChild(obj); こうすると以下のエラーになります。引数がオブジェクトじゃないということですが、文字列もオブジェクトになりませんか? Uncaught TypeError: Node.appendChild: Argument 1 is not an object. おそらくappendchildはdomというもののためにあるようです。 この辺の理解を深められるサイトはありませんかね?

  • JSのイベントターゲット が難しい

    JSのイベントターゲット (EventTarget)が難しくてよくわからないのですが初心者にもわかるように解説していただけるとありがたいです。 https://developer.mozilla.org/en-US/docs/Web/API/EventTarget イベントターゲット(EventTarget)は、DOMイベントを受け取り、それらへのリスナーを持つことが出来るオブジェクトによって実装されるDOMインターフェースです。 Elementと、 documentと、 windowは、ほとんどの共通イベントターゲットですが、 例えば、XMLHttpRequest、AudioNode、AudioContextなど、 他のオブジェクトもエベントターゲットになることが可能です。 多くのイベントターゲット(Element、document、windowを含む)は、 onXXXプロパティと属性を介して、 イベントハンドラの設定もサポートします。 メソッド .addEventListener() 要素にイベントハンドラを登録します。 .dispatchEvent() DOM内のノードのイベントを実行します。 .removeEventListener() EventTarget.addEventListenerを使用して登録されたイベントリスナーを削除します。 イベントを発動させる要素につけるイベントファンクションのようなものなのでしょうか?

  • <body>にwindow.onload = functionを2つ設定すると、最後に書いたイベントだけが実行されてしまいます。

    <body>タグにonloadイベントを実行させる2つの外部jsを<head>内に設置し実行すると、 最後に記述したイベントだけが反映されてしまいます。 http://blog.webcreativepark.net/2008/02/26-185844.html を参考にいろいろといじってはみたのですが、 function addEvent(elm,listener,fn){ try{ elm.addEventListener(listener,fn,false); }catch(e){ elm.attachEvent("on"+listener,fn); } } js初心者でして、上の関数の中にどのように記述をすれば良いのかわかりません。 IE6・IE7・safariで動作させるには、実際にどのようなソースを書けばいいのでしょうか。 どなたかご教授いただけますでしょうか。 <head>内の外部jsは、以下のように記述しました。 <script src="/A.js" type="text/javascript"></script> <script src="/B.js" type="text/javascript"></script> </head> 外部jsのソースは以下になります。 //A.js window.onload = function() { var blur = function () { this.blur() }; for (var i = 0; i < document.links.length; i++) document.links[i].onfocus = blur; } //B.js window.onload = function() { prepZooms(); insertZoomHTML(); zoomdiv = document.getElementById(zoomID); zoomimg = document.getElementById(theID); } 以上になります。宜しくお願い致します。

  • バックグラウンドでも動く setInterval

    https://gist.github.com/kawaz/72f61d8389fed0e9d4e7dc9eb01b39c8 setIntervalはブラウザのタブがバックグラウンドで動作しないとのことで動作させるためのサンプルコードが ないかと調べていたところ上記サイトを見つけました。 ただ、その書きっぷりも訳が分らない & 何をやっているのかわからないです。 当方が昔、見たことのあるJavaScriptとはまるで違っていて「そんな書き方あったっけ?」 という感じです。 例えばsuperInterval.jsの下記の部分に出てくる '=>' というのが謎でそれぞれ何を意味しているのでしょうか? とくに3つ目の 「() => cb(...args)」なんていうのが???です const superInterval = (cb, interval=1000, ...args) => { const code = `self.addEventListener('message', msg=>{setInterval(()=>self.postMessage(null), msg.data)})` w.onmessage = () => cb(...args) (superInterval.js) const superInterval = (cb, interval=1000, ...args) => { try { const code = `self.addEventListener('message', msg=>{setInterval(()=>self.postMessage(null), msg.data)})` const w = new Worker(`data:text/javascript;base64,${btoa(code)}`) w.onmessage = () => cb(...args) w.postMessage(interval) return {stop:()=>w.terminate()} } catch(_){ // 実装の問題またはCSPによる拒否などで Worker が使えなければ普通の setInterval を使う const id = setInterval(cb, interval, ...args) return {stop:()=>clearInterval(id)} } } (使い方) { const log = (...args) => console.log(...args) const {stop} = superInterval(log, 500, 1, {a:2}, [3]) setTimeout(stop, 3000) }