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) {
〜とりまスマホにゃ関係ない処理ホニャララ〜
}
}
ハイ! これでバッチリ☆
怒られなくなりました(´∀`*)
備忘録として。
【追記】10進数HTML数値文字参照
記号 | 10進数 |
---|---|
▲ | ▲ |
▼ | ▼ |
?? | ▶ |
?? | ◀ |
Tags: JavaScript, モバイル, 備忘録
(C) Art Studio Vincent. All Rights Reserved.
Powered by MT4i 3.1