ログインシステムに使用する必要があるポップアップウィンドウを作成するChrome拡張機能があります。拡張アイコンをクリックすると、そのアプリケーション(私の場合はAngularJS)が開きます。ユーザーはchrome.windows.create()
というボタンをクリックしてポップアップを開きます。Chrome拡張機能から開いたポップアップウィンドウのURLを取得
私は、メインの拡張アプリケーションがそのポップアップのURLを監視して変更したいと考えています。
私は拡張子から、このようにポップアップを作成します。
chrome.windows.create(
{
url: 'https://some.external.url.com/whatever',
type: 'panel',
width: 600,
height: 600
},
function (windowReference) {
console.log('My Window:', windowReference);
// start monitoring URL of windowReference somehow
// could be as simple as a setInterval() loop
}
)
問題は、コールバックに渡さwindowReference
オブジェクトがポップアップの現在のURLを持っていないことです。ユーザーはポップアップでページとやりとりすることができます(私はOAuth2システムを指しています)、URLは時々変更されます。私は、変更が行われたときに積極的に、または現在のURLを定期的に照会することで、それを確認したいと思います。
これはwindowReference
オブジェクトが含まれているものです:
{
alwaysOnTop:false,
focused:false,
height:600,
id:1089,
incognito:false,
left:61,
state:"normal",
top:23,
type:"popup",
width:600
}
あなたはIDがそこにあることがわかり、そして私には、私が他のいくつかのメソッドを呼び出すためにそれを使用することができるかもしれないことを示唆している、ということができます私が後にしている実際のURL情報を入手してください。
ご協力いただければ幸いです。
ヒント:[chrome.tabs.query'](https://developer.chrome.com/extensions/tabs#method-query)と関連するイベント。 –
@RobWはい、私はそれに精通しています。しかし、私はそれを使用するとき、拡張機能を開いたときに開いていたタブのURLを取得しています。拡張アプリケーション自体で作成されたポップアップウィンドウではなく、タブ内にはありません。 –
あなたは 'windowId:windowReference.id'でそれを呼び出そうとしなかったと思いますか? –