JavaScript

macのテキストエディタ Sublime Text2でJavaScriptのシンタックスエラーチェックをリアルタイムで行う方法

https://twitter.com/#!/javascript_j/status/197743453881380865 ココらへんのツイートからふとやってみようかと。 もともとのツイートはこのあたり SublimeLinter Kronuz/SublimeLinter - github リアルタイムで構文チェックを行なってくれる。 JavaScriptの他にも下記の言語に対応している(みたい) CoffeeScript CSS java Javascript Objective-J perl php python ruby Sublime Package Controlをインストール Su […]

JavaScriptの document.getElementById() でnullが帰る対処

とあるスクリプトで最初の実行時には正常に動作するのだけれど、同一ページを再訪問(リロードではなく)した時に不具合が出た。 webkit系のブラウザで不具合が確認できたのだけれど、どうやらgetElementById()でnullが帰っている様子。 ググってみると同じような現象で悩んでいる人もいるみたい。DOM構築前だとnullが帰る事もあるのが原因のようだ。 onLoadイベントとかはjQuery使っているのなら簡単に実装できるのだけれど、純粋JSで書いているスクリプトだし、他所様に配信するスクリプトなので解決方法を探る。 jQuery使っているのなら、$.ready(function(){. […]

JavaScriptでiframe操作時にchromeで不具合がでるのを回避する

とあるスクリプトで javascriptでiframeを書き、そのフレームをさらに書き換える・・・というものがあるのですが、スクリプトをページ内に複数設置すると、chromeでエラーになってしまうので回避策。 今までは document.write('<IFRAME id="フレーム名" name="フレーム名" ....></IFRAME>'); で描写して、ターゲットとなるiframeを var target_iframe = frames[フレーム名]; で取得していたのですが、これが2度目以降の実行時にundefinedとなってしまう。 var target_i […]

Javascript でブラウザ判定 IE 6,7,8 と その他のブラウザ

  • 2010.07.01

IEの6,7,8を判別するJavascript JavaScriptでIEかどうかをたったの1行で判別する方法 この両者のスクリプトを合わせてみた。 ライブラリを使いたくない(or使えない)状況で役に立つかも。 ちなみに「IEの6,7,8を判別するJavascript」のコードは間違っていたので少々修正。 if (typeof document.body.style.maxHeight != "undefined") { if (!/*@cc_on!@*/false){ // Not IE. alert('Not IE.'); }else if (document.documentMode & […]

IE における setAttribute() や getAttribute() や removeAttribute() がだめだめな件

  • 2010.07.01

相変わらずクソな実装のIE。 他のブラウザで全部動くのにIE 7.0 以下の挙動はホントにクソ。 先人の方々に感謝感激雨あられですわ。 IEでのgetAttribute,setAttributeのバグ // NG element.getAttribute("class"); element.setAttribute("style", "background-color: #fff; color: #000;"); element.setAttribute("onclick", "clickHandler(event);"); // OK element.getAttribute("classN […]

http://でアクセスされた場合に強制的にSSLページ(https://)へ移動させるJavaScript

自動でSSLページへ移動させるJavaScript ログインページ等でSSLのみのアクセスにしたいページがある場合、リンクをhttpsから始まるURL にしなくてはならないのでちょっと面倒。 仮想パス(../aaa/bbb/ccc.html)やフルパス(/aaa/bbb.html)で既にサイトを公開している場合には、どこかしらで修正を見逃す場合もある。 それならhttp でアクセスされた場合はhttps へ移動させればよさそう。 head内とかに以下のJavascript を設置するだけでOK. <script><!-- change ssl protocol if (doc […]

Javascriptでクエリーを取得する関数 getQueryStrings

location.URLなどから取得するのではなく、例えば下記ページのような事を行う関数。 javascriptでURLクエリで、変数を受け取ることはできないでしょうか? http://q.hatena.ne.jp/1179844292 <script src="sample.js?key1=value1&key2=value2"></script> などでクエリー(Javascriptではそう呼ばない??)を取得する。 注意点としては日本語等マルチバイトの文字をvalueにセットするには、URLエンコードしないとだめかも。 (呼び出し元のHTMLがUTF-8だ […]

JSONPのIE対応 UTF8で動かない件

IEでだけ動作しない事が多いようなのでメモ JSON(JSONP)で name( { 'data' :[ ['あいう','せそ'], ['かきく','けこ'], ['さしす','せそ'] ] } ); こんな感じのものを使おうとすると ']'がありませんというようなエラーが出る。 cgi等スクリプトで出力する場合はレスポンスヘッダを明示的に指定する必要がある。 perlなら print "Content-type: application/json; charset=UTF-8;\n\n"; のように。 charsetは'utf8'ではダメで'UTF-8'か'utf-8'とハイフンが必要のよう […]