私は必要に応じてfancyboxやcolorboxなどに切り替えることができましたが、jquery-uiダイアログを使用しています。私のクロムプラグインのコンテンツスクリプトは、ページの読み込み時にこのダイアログを開きます。jquery-ui では、ボックスが添付されていた div が現在のページの本文に移動されます。ユーザーがページ上のリンクをクリックした場合、新しいページが読み込まれたときに再度開くのではなく、そのボックスを開いたままにして、実際のページよりもブラウザーに関連付けられているかのようにします。これは、ページをフレーム化し、ボックスを別のフレームに配置することで可能になるかもしれませんが、これが多くのサイトで機能するとは思えません. 何か案は?
2 に答える
私が見る限り、UI ダイアログを開いたままにしておく唯一の方法は、新しいページが読み込まれる iFrame を使用するか、(たとえば) jQuery を使用して新しいページを特定のコンテンツ div に読み込むことです。 load() (または ajax() または post() または get()) - UI ダイアログ div を iFrame またはコンテンツ div の外側に保持します。
私はこれに自分で答えるつもりです。コンテンツスクリプトで作成されたdiv/iframeを永続化できると私が見つけた唯一のことは、パネルと呼ばれるchromeの実験的な機能です。今のところ、この機能は
chrome:// flagsページ:
Panels Mac、Windows、Linux、ChromeOSを有効にするブラウザフレームの外側で開くPanelウィンドウを有効にします。パネルを開こうとすると、有効になっていない場合は代わりにポップアップが開きます。パネルは、開発チャネルとカナリアチャネルで常に有効になっています。
「panel」は、次のようにウィンドウタイプとして指定できます 。http ://code.google.com/chrome/extensions/windows.html#type-Window パネルの実験機能がchromeで有効になっていない場合、新しいウィンドウポップアップデフォルトで使用されます。