ハックその1 document.write = function() { var arg = []; var scripts = document.scripts; for(var i=0,f=arguments.length;i<f;i++){ arg[i] = arguments[i]; }; scripts[scripts.length-1].insertAdjacentHTML('beforeBegin', arg.join('')); }; 効用 上記ハックを実施するとdocument.createElement('script')で動的にscript要素を追加してもdocument.writeされる。補足ですが、document.createElement('script')で動的にscript要素を追加してもやはりdocument.scriptsの最後に追加されます。つまり、
先日 Firebug Lite ブックマークレットを公開しましたが、動的生成した IFRAME に HTML を流し込むとブラウザが読み込み状態のままになってしまう(ロード中アニメーションなどが再生されっぱなしになる)という問題がありました。 IFRAME の動的生成はいろいろと応用範囲が広いので、なんとかこの問題は解決しておきたいところです。そこでいろいろと試行錯誤して、なんとか回避方法を見つけることができました。本日はそれをご紹介しようと思います。 さっそく種明かししてしまいましょう。実は答えはいとも簡単でした。 document.write で HTML を流し込む前後で document.open と document.close をきちんと呼ぶ必要があるようです。こんな感じですね。 var iframe = document.createElement('IFRAME'); do
特定のscript中に含まれるdocument.writeを上書きして、遅延描画にすることができます。 document.writeを使う広告配信スクリプトや、ブログパーツなどの挙動を置き換えることが出来ます。 外部サーバーから読み込むスクリプトをページ最後部に記述することでページレンダリングを妨げなくなります。 このページはこんな感じになってます。 var adsense_url = 'http://pagead2.googlesyndication.com/pagead/show_ads.js'; document.lazy_writer(adsense_url, function(str){ var id = "adsense_" + this.script_count; document.getElementById(id).innerHTML = str; }, {delay :
とてもシンプルに自分自身が属する script 要素を取得 http://d.hatena.ne.jp/amachang/20061201/1164986067 document.writeをDOM仕様にする http://nyarla.net/blog/javascript-tips1 あたりに着想を受けて、作ってみました。 http://la.ma.la/misc/js/lazy_writer/ 特定のscript src内のdocument.writeをピンポイントに置き換えることができます。 制限事項としては、document.writeを使ってscriptタグを生成するようなコードの場合、IEではinnerHTMLにscriptを書いても実行されないという仕様があるので実行されません。その点を除けば、IFRAMEをdocument.writeで挿入するような、良くある広告系のdo
岡村 直樹(にゃるら)『輝かしい青春』なんて失なかった人。 2023年10月現在、アルバイトが退職となったので次に備えて待機中。 ※なおゲームのシナリオ・企画を担当された『にゃるら』さんとは別の人間です 略歴1988 年代の早生まれ。『輝かしい青春』なんて失なかった人。 2003 年代後半の高校生時代、自滅的にメンタルを病み、そこから 2023年 10月現在も治療中。 とはいえ 2019年 9月頃に N 高等学校を卒業し、 その後 2022年 8月から 2023年 9月末まで Web アプリケーションエンジニアとしてアルバイト就職をするなどした。 2023年 10月現在、次回の備えて精神科でリハビリに通う日々を送っている。 プログラミングスキルは 2005 年頃、 blosxom のために Perl を扱う事を通じて修得し、 そこから 2023年 10月に至るまで継続して腕を磨いている。
JavaScriptを書き始めるとき、いきなり*.jsやHTMLに書いたりするのではなく、大抵下記に試しに書いて実行してみます。 JavaScript Development Environment JavaScript Shell Web Development Bookmarklets 上記2つのブックマークレット版 JavaScript Shell は、補完機能なんかもあって高機能ですが、IE、Operaだとどうもうまく動きません。 JavaScript Development Environment は、ブックマークレット版じゃないほうはIE、Operaでも動くので、どちらかというとこっち使うときの方が多いです。(Operaでのエラー表示が出来てないみたいだけども…) ブラウザ上で簡単に試せるってのはすばらしいですね。 で、その後に*.jsやHTMLに書いて、後はFireBug使い
Note that this is an updated version. Original version can be found here. Thanks to the commenters I have updated this post with some better tricks. In a loose series I’d like to point out a few of them. As I am currently mostly programming in JavaScript, I will write most of my samples in that language; also some of the tricks I mention only apply to JavaScript. But most of them apply to most pro
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く