1

ウィンドウのサイズ変更イベントのイベント リスナーを追加する Chrome ブラウザーの拡張機能を作成しています。私のメソッドはウィンドウの読み込みイベントに対して実行されていますが、サイズ変更イベントに対しては実行されていません。

以下は私のmanifest.jsonファイルのコードです

{
  "name": "A browser action",
  "version": "1.0",
  "background": { "scripts": ["background.js"] },
  "permissions": [
    "tabs", "http://*/*"
  ],
  "manifest_version": 2
}

以下は私の background.js ファイルのコードです。

var myExtension = 
{  
    init: function()
    {  
      // The event can be DOMContentLoaded, pageshow, pagehide, load or   unload.           
      alert("ASHSIH");
      window.addEventListener("resize", this.onmyPageResize, false);
    },
    onmyPageResize: function(aEvent) 
    {  
      alert("RESIZED");
                
    }  
}
  
  
window.addEventListener("load", function load(event){  
  window.removeEventListener("load", load, false); //remove listener, no longer   needed  
  myExtension.init();    
},false); 
4

4 に答える 4

5

Chrome-o-Tileは、コンテンツ スクリプトでサイズ変更をリッスンする拡張機能の一例です。

manifest.json で:

"content_scripts": [
  {
    "js": ["contentscript.js"],
    "run_at": "document_start",
    "matches": [
      "<all_urls>"
    ]
  }
],

contentscript.js で:

'use strict';

var timeoutId = 0;

window.addEventListener('resize', function() {
  if (timeoutId) {
    clearTimeout(timeoutId);
  }
  timeoutId = setTimeout(function() {
    chrome.runtime.sendMessage({method: 'resize'});
    timeoutId = 0;
  }, 100);
}, false);

background.js で:

chrome.runtime.onMessage.addListener(function requested(request) {
  if (request.method === 'resize') {
    ...
  }
)};

Chrome 拡張機能の chrome.windows.onResize イベントを実装するための未解決の問題もあります。

于 2012-11-06T16:04:27.353 に答える
3

background.js ファイルは、ブラウザーでのサイズ変更イベントをキャプチャできません。そのためには、コンテンツ スクリプトを挿入する必要があります。

于 2012-10-30T22:11:35.270 に答える
0

jQueryのbind()機能を利用できます。 http://api.jquery.com/bind/

$(window).bind('resize', function () {
//do something here
});
于 2012-10-30T14:29:36.010 に答える