エラーが発生していることに関する情報がほとんどないブラウザコンソールでこのタイプのエラーが発生すると、そのエラーはJavaScriptやおそらくコード内でさえない可能性があります。このような場合は、JavaScriptスタックトレースが存在しないため、取得できません。
このようなことは、通常、開いているポップアップやタブで使用されるXULやHTMLの問題が原因です。アドオンでは、のchrome://restclient/content/restclient.htmlという内容のタブが開きます。そのファイルを内容のないHTML文書に置き換えると、エラーはなくなります。
このファイルの内容をバイナリ検索する(一度にファイルの半分ずつコメントアウト/削除し、エラーがまだ存在するかどうかをテストして)、Aにエラーがあることを確認し、B )エラーの原因となっているものを、次の行でエラーがブラウザコンソール(ライン197)に表示させていることを決定する上での結果は:
<input class="span5" style="width:-moz-calc(100% - 1em) !important;" type="password" name="password" autocomplete="on" placeholder="Password">
もう少しテストがtype
があるときに問題が消えることを示していないpassword
。元のHTML文書をfile:
URLで簡単にアクセスできる場所にコピーすると、文書を開いたときにブラウザコンソールにそのようなエラーは発生しません。
したがって、chrome:
URIからロードすると、Mozillaのコードでは<input type="password">
のバグであるという結論になります。
スタックトレースせずにコードに無効なchrome:
URIを検索:
問題はHTMLやXULファイルに見つかりませんでした場合、あなたのアドオンで使用されているchrome:
のURIに目を通すことが必要であろう何が原因であるかを見つける。
chrome:
URIは、私たちは、このような問題を追跡しての利点を取ることができますいくつかのプロパティを持っている:
chrome:
URIは通常静的です。
chrome:
URIは通常の形式でchrome:\\packageName\{content,skin,locale}
- を来るあなたのにchrome.manifestファイルが
chrome:
URIは、あなたのアドオン/パッケージに対して有効であることができるかを定義します。
- その他chrome.manifestファイルは、アドオン/パッケージ外で有効なURIを定義します。
だからあなたにchrome.manifestファイルを初めて目:
content restclient content/
resource restclient ./
overlay chrome://browser/content/browser.xul chrome://restclient/content/overlay.xul
overlay chrome://navigator/content/navigator.xul chrome://restclient/content/overlay.xul
style chrome://global/content/customizeToolbar.xul chrome://restclient/content/css/overlay.css
これはあなたのパッケージで、唯一の有効な内部chrome:
URIは形式chrome://restclient/content/
になり、を参照することを教えてくれるコンテンツあなたのアドオンのルートディレクトリ内のディレクトリ。
ここで、アドオンで使用されているすべてのchrome:
個のURIを探します。これを行うには、コマンドラインgrep -nri chrome: *
が簡単に実行できます。 grep
は、複数のオペレーティングシステムで標準ユーティリティプログラムとして利用できます。 Windowsでは、通常Cygwinから取得します。今
chrome.manifest:4:overlay chrome://browser/content/browser.xul chrome://restclient/content/overlay.xul
chrome.manifest:5:overlay chrome://navigator/content/navigator.xul chrome://restclient/content/overlay.xul
chrome.manifest:6:style chrome://global/content/customizeToolbar.xul chrome://restclient/content/css/overlay.css
content/css/overlay.css:30: list-style-image: url("chrome://restclient/content/images/icon16.png") !important;
content/css/overlay.css:33: list-style-image: url("chrome://restclient/content/images/icon16.png") !important;
content/js/restclient.js:51: i18nStrings = new restclient.StringBundle("chrome://restclient/locale/restclient.properties");
content/js/restclient.main.js:1040: xslDocument.load("chrome://restclient/content/xsl/XMLPrettyPrint.xsl");
content/js/restclient.main.js:1053: xslDoc.load("chrome://restclient/content/xsl/XMLIndent.xsl");*/
content/js/restclient.overlay.js:68: browser.selectedTab = browser.addTab("chrome://restclient/content/restclient.html");
content/overlay.xul:2:<?xml-stylesheet href="chrome://restclient/content/css/overlay.css" type="text/css"?>
content/overlay.xul:7: <script type="application/x-javascript" src="chrome://restclient/content/js/restclient.js" />
content/overlay.xul:8: <script type="application/x-javascript" src="chrome://restclient/content/js/restclient.overlay.js" />
content/overlay.xul:23: image="chrome://restclient/content/images/icon16.png"
content/overlay.xul:35: image="chrome://restclient/content/images/icon16.png"
content/overlay.xul:46: image="chrome://restclient/content/images/icon16.png"
content/overlay.xul:58: image="chrome://restclient/content/images/icon16.png"/>
modules/StringBundle.js:59: * new StringBundle("chrome://example/locale/strings.properties");
を、我々はできる、そしておそらく、手動での問題のためにそれに目を通す必要がありますが、私たちはコマンドで明白な問題を発見するために迅速にリストを短くすることができます:そのコマンドから、我々が得るgrep -nri chrome: * | grep -v chrome://restclient/content/
を。これにより、あなたのアドオンのcontent
への参照の形式になっていないchrome:
のURIが得られます。取得したリストには、アドオン外のファイルを参照する有効なchrome:
URIが簡単に含まれる可能性があります。だから、我々はより多くのチェックをする必要があるかもしれない。上記のコマンドから、我々が得る:
content/js/restclient.js:51: i18nStrings = new restclient.StringBundle("chrome://restclient/locale/restclient.properties");
modules/StringBundle.js:59: * new StringBundle("chrome://example/locale/strings.properties");
最初はlocale
chrome:
URIです。 chrome.manifestにlocale
を指定していません。したがって、それは確かに無効です。 の51行目を参照してください。コンテンツ/ js/restclient.jsアクティブなコードです。実際に使用されると、無効になります。
2番目の可能性は、典型的な例のchrome:
です。行は*
で始まり、コメントである可能性があることを示唆しています。行59の/StringBundle.jsの行がコメントであることを示しています。
問題が見つからなかった場合は、既知の無効なchrome:
のURIを解決し、問題が解決したかどうかをテストします。この例では、問題点がわかっているので、確認する必要はありません。
しかし、chrome://restclient/locale/restclient.properties
が無効であることを考えると、A)、それはそのコードが実行された場合、それが失敗することを意味し、あなたのにchrome.manifestで定義されているあなたのアドオンおよびB)なしlocale
には、このようなファイルはありません。基本的には、関数restclient.i18n
は死んでいる/悪いコードなので削除する必要があります。その機能がモジュール/ StringBundle.jsファイルの唯一の使用である場合、それも削除することができます。明らかに、これがあなたが積極的に取り組んでいるものなら、それは別の話です。これらは本質的にエラーはありませんが、それは一般的ではないに望ましい
21:26:37.975 SyntaxError: test for equality (==) mistyped as assignment (=)?1 chrome://restclient/content/js/bootstrap.js:1557:33
21:26:37.989 TypeError: variable url redeclares argument1 chrome://restclient/content/js/restclient.main.js:376:8
:
がこれに取り組んで、私はまた、あなたはおそらくを見てみなければならないブラウザコンソールで他のエラーのカップルを指摘しましたアドオンが正常に動作している間は、ブラウザコンソールに何かが表示されます。しかし、jquery.jsで報告されているさまざまなエラーを考えてみましょう。
chrome.manifestに不正な形式のURLなどが含まれている可能性があります。使用しているすべてのクロームURL(コンテキスト、つまりオーバーレイまたは.jsのコードブロックを含む)を一覧表示できますか? –
@ChuckBakerコメントありがとうございました。私が修正しなければならなかったバグは、実際にこの警告に関連していませんでした。しかし、私はまだこの種の警告をどのように辿るかを学ぶことに興味があります。 –
あなたの状況では、ソリューションがあなたのために機能することを確認できるように、いくつかのコードが良いか、AMOの拡張子へのポインタになります。 – Makyen