tag:blogger.com,1999:blog-3119189713565421869.post3385613472456346217..comments2015-05-09T15:10:01.796+09:00Comments on Loox Uと初音ミクで行こう!: Google ChromeでDOMContentLoadedが発生しないケースがあるArc Cosinehttp://www.blogger.com/profile/18246702106468606404noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-3119189713565421869.post-35361455129805913412011-01-07T00:10:31.018+09:002011-01-07T00:10:31.018+09:00>think49さん
コメントありがとうございます。
documentのreadyStat...>think49さん<br /><br />コメントありがとうございます。<br /><br />documentのreadyStateを使う方法は試したのですが、IE(憎き奴です)で上手く行かなかったので、諦めました。<br />ただ、IEを無視するならば、その判定方法がスマートですね。Arc Cosinehttps://www.blogger.com/profile/18246702106468606404noreply@blogger.comtag:blogger.com,1999:blog-3119189713565421869.post-7590187860429535692011-01-06T23:33:27.478+09:002011-01-06T23:33:27.478+09:00とりあえず、hoge.js を以下のようにすると動作するようです。
---
(function (...とりあえず、hoge.js を以下のようにすると動作するようです。<br /><br />---<br />(function (loadedListener) {<br /> var doc, readyState;<br /><br /> doc = document;<br /> readyState = doc.readyState;<br /><br /> if (readyState === 'complete' || readyState === 'interactive') {<br /> loadedListener();<br /> } else {<br /> doc.addEventListener("DOMContentLoaded", loadedListener, false);<br /> }<br />})(function () {<br /> alert('nya-2');<br /> });<br />---<br /><br />document.readyState === 'interactive' 以上が保証されれば、DOMContentLoaded 以降のタイミングのはずなので問題ないと思います。<br />このままでは第一引数で event を受け取れないのがネックですが。think49http://think49.scrapi.jp/scraps/231noreply@blogger.comtag:blogger.com,1999:blog-3119189713565421869.post-6258486025619414302011-01-05T08:46:19.147+09:002011-01-05T08:46:19.147+09:00>os0xさん
コメントありがとうございます。
>DOMContentLoadedが...>os0xさん<br /><br />コメントありがとうございます。<br /><br />>DOMContentLoadedが発生しないのではなく、後から追加したscript要素内でDOMContentLoadedに登録してもDOMContentLoadedの発生に間に合わないことがあるってことですよね。<br /><br />って事です。<br />難しいですね、日本語。Arc Cosinehttps://www.blogger.com/profile/18246702106468606404noreply@blogger.comtag:blogger.com,1999:blog-3119189713565421869.post-62927096302072089722011-01-05T08:09:19.726+09:002011-01-05T08:09:19.726+09:00DOMContentLoadedが発生しないのではなく、後から追加したscript要素内でDOMCo...DOMContentLoadedが発生しないのではなく、後から追加したscript要素内でDOMContentLoadedに登録してもDOMContentLoadedの発生に間に合わないことがあるってことですよね。<br />createElementして追加したscript要素の実行タイミングは保証されていないので、Chromeに限らず、DOMContentLoadedに間に合わない可能性はあります。(といいつつ、FirefoxとOperaの実装では実行タイミングを保証しています)。os0xhttps://www.blogger.com/profile/04287791130056474925noreply@blogger.com