2015年11月 アーカイブ[2]

打響 - ネイキッド・イノセンス・ピュア・シンパシー

打てば響く、ではなく、打って反応する者だけが響く。これが本当の打響──。

11月23日(月)勤労感謝の日、三鷹市民でもチケットがなかなか取れないことで有名な三鷹の森ジブリ美術館へ行った。
vincent.ファミリーは勿論のこと、遠路はるばる訪れた家内の友人ファミリーも合わせ、4組集まった。

大人7名、子供6名、計13名の大所帯。中には初対面の者も含まれており、素面で大人数と対面するのは些か抵抗を感じていたが、大人の事情というものはナイーブメントなレジスタンスを悉く駆逐する。

僕は、生来からのへそ曲がり気質が災いしてか、エンターテインメントやアトラクション等を素直に楽しむのが苦手で…アルコールが入っていないと特に…決して悪意はないのだが、ついて出るのは悪態ばかり、同行者の夢色気分に水を差すことが得意なようだ。

今回とて例外に洩れず、生憎の空模様も手伝い、正直、余り乗り気ではなかったのだが、痛く心を動かされた事件が印象に刻まれた。

「ネイキッド・イノセンス・ピュア・シンパシー」──である。

More ▶

【JavaScript】Uncaught TypeError: Illegal invocation - 回避方法


Uncaught TypeError: Illegal invocation

console.logにて上記エラーが表示された。
該当箇所を見てみると、


if (navigator.plugins && navigator.plugins.length) {

↑ここで止まってる様子。

ちなみに、モバイル用のデバッグを行っていたので、ああ、スマホはプラグインとかに依存してないからなぁ、などと考えつつデバッグを続行。
navigator.pluginsをコンソールに投げる。


▼PluginArray {}
▶︎constructor: PluginArray()
▶︎item: item()
 length: (...)
▶︎get length: ()
▶︎namedItem: namedItem()
▶︎refresh: refresh()
▶︎__proto__: Object

ああ、lengthは取れないのね、と思いつつ中身を見てみると、


[Exception: TypeError: Illegal invocation at PluginArray.remoteFunction (<anonymous>:3:14) at Object.InjectedScript.callFunctionOn (<anonymous>:721:66)]

とまぁ、ありがたい呪文が、、w
スミマセン、ニフォンゴ デ オネガイシマス(´∀`*)

取り敢えず、上から順番に当たってみよう、ということで、constructorを開くと、あら、素敵☆


▼constructor: PluginArray()
 arguments: null
 caller: null
 length: 0
 name: "PluginArray"
▶︎prototype: PluginArray
▶︎toString: toString()
▶︎__proto__: ()
▶︎<function scope>

こんなところにlengthちゃん隠れてるじゃない☆

で、颯爽と下記のようにしましたよ。


if (navigator.plugins.constructor.length !== 0) {
if (navigator.plugins && navigator.plugins.length) {
〜とりまスマホにゃ関係ない処理ホニャララ〜
}
}

ハイ! これでバッチリ☆
怒られなくなりました(´∀`*)

備忘録として。

More ▶