1

Chrome拡張機能を開発するとき、JavaScriptファイルでこのコードを使用して新しいタブを開くことができました

myWindow=window.open("www.google.com");

次のコマンドで、開いた直後に閉じることができました。

myWindow.close();

閉じる前に数秒待つようにjavascriptのいくつかの方法を試しましたが、そうすると閉じません。ウィンドウのIDを失ったためでしょうか?知らない。Chrome 拡張機能の開発について学び始めたところです。

[編集] 皆さんを助けるために必要なすべてのコードを提出します。Chrome 拡張機能を開発しようとしていて、拡張機能によって作成されたツールバーのボタンをクリックするとアクションが発生することを思い出してください。(ここから取得したコード: http://developer.chrome.com/extensions/getstarted.html )

HTMLファイル

<!doctype html>
<html>
<head>
<title>Getting Started Extension's Popup</title>
<style>
  body {
    min-width: 357px;
    overflow-x: hidden;
  }

  img {
    margin: 5px;
    border: 2px solid black;
    vertical-align: middle;
    width: 75px;
    height: 75px;
  }
  </style>
 <script src="popup.js"></script>
</head>
<body>
</body>
</html>

マニフェスト

{
"manifest_version": 2,

"name": "myExtension",
"description": "This extension is under development",
"version": "1.0",

"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": ["www.google.com"]
}
4

2 に答える 2

1

拡張機能のポップアップからこれを行っているようです。ポップアップはフォーカスを失うと閉じられるため、新しいウィンドウがフォーカスを取得すると実行環境が破壊されていると推測されます。したがって、そこで設定した遅延イベントは実行できません。

あなたのポップアップは空のウィンドウのようで、ウィンドウを開くだけです。その場合、ポップアップを定義する必要はありません。chrome.browserAction.onClickedeventを使用してバックグラウンド ページから実行できます。

ポップアップからアクションを開始する必要がある場合は、バックグラウンド ページで関数を定義し、chrome.runtime.getBackgroundPage(function(w){w.yourFunction();}).

また、拡張機能ではchrome.windows APIとchrome.tabs API を利用できることに注意してください。

于 2013-10-21T08:52:48.883 に答える
0

ブラウザのセキュリティ フレームワークにより、これを遅らせることはできません。ウィンドウを開閉するには、ユーザーが開始したイベントが事前に発生する必要があります。

于 2013-10-20T22:39:57.460 に答える