uncaught referenceerror function is not definedの対処方法(JQuery)

急に外部呼出しのjsファイル内の関数が読み込めなくなっていた。

ファイルの読み込み順をconsol.logでも確認するが読み込みのタイミングは順番通りで、なぜ参照できなくなったのかがわからなくなってしまった。

同一HTMLファイル内に関数を記述すると問題なく読み込まれるのになぜ?

外部jsファイルの実行も問題なく、JQueryの読み込み順番も一見問題ない。

プログラムの仕組みが良く理解できていないけど、やはり関数が読み込まれるようにするとかグローバル化しないといけないとの結論に達するが方法がわからない。

ちなみにhtaccessなどの制限も疑ってみるが、ローカルでもサーバー上でもファイル読み込みはされているので除外する。

JavaScriptなのですべてをローカル環境にして再度トライする。

外部jsファイルに記述したfunctionなども実行するがうまくいかなかったため、別の関数を新規に作成してテストするも同じく
uncaught referenceerror function is not defined

キャッシュなどは何度もクリアしながら、console.logも書き換えながら、最新ファイルを参照しているはずなのに。

どうやっても理由がわからなので初心に戻り、外部ファイルをすべて綺麗にして、グローバルスコープで別の関数を設置すると、うまくconsole.logが表示。

以前の関数をコピペすると動作できる。

・・・どうも記述部になんらかの欠陥があった模様。コメントアウトや記述などの編集も頻度があったので、なんとなく府に落ちないながらもトラブル回避。

cssセレクタなどでもごくまれに起こる、リドルクラッシュ(riddle crash)と全く似た現象かと。
ちなみにcssセレクタのリドルクラッシュは、正しい記述なのに値を変更したりすることで急に正常に反映されなくなり、同じセレクタ最初から記述しなおすと治る現象のこと。

ところが、再表示を試みたところ、やはり表示できない。他のブラウザでは表示できるから、ブラウザ特有のものであるかと考えるが、どうも狭い視野でしか思考が動かないので、その日は放置。

後日、やはり同じ現象が発生しているため、別種のブラウザで見てみるとどうやら表示されているので、ブラウザ限定の要因に絞り込みする。

再度テスト用のファイルを別途作成してトライするも、やっぱり同じエラーに悩まされる。

『あ!アドオンだ!』

GhosteryかAdblock Plus。怪しいのはどちらかだ。

結局、Adblock Plusが外部JSの読み込み制限をかけていたため、許可をするとすんなり表示。

冷静な思考を失うと、時間も労力も失う。

IE9でインラインフレーム内のテキストがにじむ

IE9ではテキストエリアやインラインフレーム内に呼び出すページなどを
エリア内のスクロールバーで移動させたりすると「にじむ」というバグと
いう不具合がある。

これはIE9では文字表示関連の機能でもある、ClearType(クリアタイプ)
が強制的に有効化されており、それが原因とされている。

IE8まではインターネットオプションからのClearTypeの有効・無効が設定
できたが、IE9では強制的にクリアタイプが有効化されている。

モジュールなどを使用して無効化することは可能なようだが、解決策とし
ては現実味にかける。

IE開発チームはIE7開発時に公式ブログでこの機能搭載について掲載して
いるが、バグが多すぎるブラウザーとしてのIEは、バージョンアップの度
にWEB制作者を困惑させる迷惑なイベントである。

具体的な回避策だが、事実上、IE9のバージョンアップ時に修正されるこ
とを期待するか(ほぼ期待できない)か、IE9を使用しないことになる。

ブラウザとして極めて迷惑な存在であるIEは、そのシェアはいまだにそこ
そこあるからさらに困るのである。