36

配布用のJS/PHPプラグインを作成しています。これと同じくらい簡単にインストールできるようにしたいと思います。

<HTML>
<HEAD>
<TITLE>Testing my Plugin</TITLE>
<?php
  include 'path/to/myPlugin.php';
  echo getMyPluginHeadContent();
?>
</HEAD>
<BODY>
<?php
  echo getMyPluginContent("Arguments will go here");
?>
</BODY>
</HTML>

ただし、そのメソッドの使用を必要とする他のスクリプトがある場合に備えて、このプラグインにオーバーライドせずにウィンドウサイズ変更リスナーをアタッチする必要があります。のようなjavascriptコマンドはありますか?それが機能していないので、そうではないことを私は知っています、そしてMDNとW3Cは議論が何をとるかについて非常に曖昧です。window.onresizedocument.addEventListener("resize", myResizeMethod, true);addEventListener

プラグインに対応していないため、window.onresize = myResizeMethodまたはを使用するように指示する回答は必要ありません。<BODY ONRESIZE="myResizeMethod">

4

2 に答える 2

75

ウィンドウのサイズ変更時にこの関数を呼び出そうとしているので、関数をドキュメントではなくウィンドウにバインドする必要があります。9未満のバージョンのIEをサポートするには、を使用する必要がありますattachEvent。キーワードattachEventを指定する必要がありますのでご注意ください。on次に例を示します。

if(window.attachEvent) {
    window.attachEvent('onresize', function() {
        alert('attachEvent - resize');
    });
}
else if(window.addEventListener) {
    window.addEventListener('resize', function() {
        console.log('addEventListener - resize');
    }, true);
}
else {
    //The browser does not support Javascript event binding
}

同様に、同じ方法でイベントを削除できます。を使用するときは、を呼び出すときに行ったremoveEventListenerのと同じ値を渡すようにしてください。これは、値である3番目のパラメーターです。useCaptureaddEventListenertrue/false

if(window.detachEvent) {
    window.detachEvent('onresize', theFunction);
}
else if(window.removeEventListener) {
    window.removeEventListener('resize', theFunction, true);
}
else {
    //The browser does not support Javascript event binding
}
于 2012-11-30T19:03:08.397 に答える
31

ドキュメントのサイズを変更するのではなく、ウィンドウのサイズを変更します。これは動作します:

window.addEventListener("resize", function(){console.log('resize!')}, true);
于 2012-11-30T18:53:32.967 に答える