私は非常に単純な Google Chrome 拡張機能を書いていますが、非常に多くの問題に直面しており、このような惨めな規模のプロジェクトには少し圧倒されます。
拡張機能は非常に単純なものです。任意のページ (たとえば、google.com) に到着すると、ページのコンテンツは非表示になり、ユーザーは質問に直面し、正しく答える必要があります... または他のページにリダイレクトされます正解のページです。つまり、質問に正しく答えないと、ユーザーはインターネット上のページにアクセスできません。
ページのコンテンツを非表示にするために、次のアプローチを使用して単純なオーバーレイを使用することにしました。
アプローチ #1
現在のドキュメントの本文に、幅/高さが 100% の単純な不透明を追加しようとしましたdiv
。それはうまくいきましたが:position: fixed;
z-index: 2147483647;
- ページの CSS が my 内の要素に干渉し続けました
div
。 - その上に Flash コンテンツが表示されることがありました (少なくとも Windows XP では)。
embed
ページ全体で s を追跡し、wmode
「透明」に設定しても問題は解決しませんでした。-10000px にオフセットするか、設定をdisplay:none;
単純に緩和しましたが、問題は解決しませんでした。この質問も参照してください。
アプローチ #2
上記のアプローチとiframe
まったく同じように動作するように、作成されてページに挿入された でGUI をサンドボックス化してみました。div
最初のアプローチの問題を完全に解決しますが、次のことを行います。
iframe
クロスオリジン ポリシーのため、コンテンツにアクセスする方法がないようです。そして、そのアクセス – ユーザーが回答を入力している入力フィールドにハンドラーを割り当てる必要があります。質問が回答されたら、回答入力フィールドからフォーカスを盗んでいる人を覚えておく必要があります。 .- Message Passingの使用は私にはうまくいきませんでした。また、メッセージングによって全体が非常に複雑になり、アプリケーションを単純な Web ページとして (つまり、拡張機能としてではなく) 使用できなくなるため、それを機能させるべきかどうかさえわかりません。なぜ気にするのですか?
だから...私のアプローチのどこが間違っているのですか?私が気付いていない 3 番目または 4 番目のものはありますか?
感謝しますが、答えとしてコードは必要ありません。正しい方向へのヒントやプッシュも同様に良いでしょう.
PS ある時点で、共有するコードがあるかどうかを尋ねる人がいると思います。ありますが、たくさんあります。具体的にどの部分を見たいですか?