1

新しいウィンドウを開いて、次のようなonloadイベントを割り当てています。

var wconsole = window.open("console?cachebust=" + (new Date()).getTime(), "consolewin");
$(wconsole).load(function(){
  // event code here
});

ただし、同じ呼び出しを再度行うと(つまりwindow.open、同じ引数を使用して再度呼び出すと)、ウィンドウが更新されても、load関数は呼び出されません。

なぜ何かアイデアはありますか?

4

4 に答える 4

0

これを試して。わかりませんが、試してみる価値があります。

var wconsole =NULL;
wconsole =  window.open("console?cachebust=" + (new Date()).getTime(), "consolewin");

$(wconsole).load(function(){
  // event code here
}
于 2012-07-27T04:45:44.853 に答える
0

閉じ中括弧がありませんでした。おそらくそれが問題です。

var wconsole = window.open("console?cachebust=" + (new Date()).getTime(), "consolewin");
$(wconsole).load(function(){
    alert('test');
});
于 2012-07-27T07:00:22.603 に答える
0

コメントで述べたように、ウィンドウがすでに開いている場合、ロード関数は何をすることを期待しますか?すでにロードされています。ウィンドウを閉じると、ウィンドウが再度読み込まれます。

この関数を使用してwindow.close、ウィンドウを閉じてから再度開くことができます。

wconsole.close()
于 2012-07-30T01:42:14.237 に答える
-1

意味がないのですか$(wconsole).onload(function(){...}

いずれの場合も、リロードによってスクリプトを含むすべてが破壊され(ただし、Grease Monkey永続的なスクリプトがある場合)、定義された関数が再定義されるため、失敗が保証されます。リロードが必要な機能を新たに再定義しない限り、ゲームは失われます。

例:

javascript:
void(window.open("data:text/html,
<html>
<a href=\"javascript:alert('Here today ...');location=location.href;alert('gone ...');\">
reload </a> shows only 1 alert <br/>
(2nd may appear but disappears automatically once window has refreshed)<br/><br/>
as goes `alert` so do other `window` functions like `onload`<br/><br/><br/><br/>
<a href=\"javascript:alert('Now you see ...');self.close();alert('NOT!?');\">
choked or croaked?</a> only 1 alert is seen<br/>
</html>"))

テスト:

 window.navigator.userAgent =  
 Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:11.0) Gecko/20100101 Firefox/11.0

ref:
ユーザーが現在のウィンドウを閉じることを確認した場合、現在のウィンドウを閉じるときに新しいブラウザウィンドウを開きます

ブックマーク:
ウィンドウがすでに開いているときにwindow.onloadが起動しない

于 2012-10-07T10:21:13.503 に答える