2

SMF フォーラムの「未読トピック」ページに表示されるすべての投稿を開く次のブックマークレットがあります (元は 1 行です)。

javascript:(function(){
  var topics = new Array();
  var links = document.getElementsByTagName('a');
  for (var i = 0; i < links.length; i++) {
    if (links[i].href.indexOf('#new') != -1)
      topics.push(links[i].href);
  }
  for (var i = 0; i < topics.length; i++) {
    window.open(topics[i]);
  }
})();

以前は問題なく動作していました。リンクのあるページを開き、ブックマークレットをクリックすると、すべてのトピックが新しいタブで開きました。

最後の Chrome の更新後 (私の現在のバージョンは 22.0.1229.79 m、Windows 7 x64)、これが変更されました。クリックすると、最初のトピックが新しいタブで開きますが、他のトピックはポップアップで開きます (最初にそれらを承認する必要がありました)。

私の質問は次のとおりです。

  1. この問題を回避して以前の動作を復元するにはどうすればよいですか?
  2. この変化の原因は何ですか?
4

2 に答える 2

0

バックグラウンドで新しいタブを開きますか? 役立つかもしれません:そこの答えは、使用してから、Ctrlキーを押しながらクリックするか、OS Xでメタクリックをシミュレートするdocument.createEventことをお勧めします。initMouseEvent

于 2012-09-30T19:21:14.930 に答える
0

このハックを回避策として試してください。私のために働いた。

javascript:(function(){
  var topics = new Array();
  var links = document.getElementsByTagName('a');
  for (var i = 0; i < links.length; i++) {
    if (links[i].href.indexOf('#new') != -1)
      topics.push(links[i].href);
  }
  for (var i = 0; i < topics.length; i++) {
    setTimeout(function(){ window.open(topics[i]) }, 500); // ADDED setTimeout
  }
})();

Chrome のポップアップ ブロック設定を変更する必要がある場合があります。Chrome がポップアップをブロックすると、小さなアイコンが URL バーの右隅に表示されます。

ここで直接編集することもできます: chrome://chrome/settings/contentExceptions#popups

この方法で少なくとも 30 個のタブを開くことができましたが、この方法で開くことができるタブの数には制限があるようです。タイムアウトをいじると役立つ場合があります。または、30 を開き、もう一度クリックしてさらに 30 を開くこともできます。もちろん、マイナー コードを変更します。「30」はほんの一例です。実験して最適な数を見つけてください。

ポップアップ ブロッカーの設定を変更し、setTimeout なしであなたのようなコードを使用すると、2 つのタブが開き、膨大な数の新しいウィンドウが開かれたことに注意してください。これはバグだと思います。このシナリオでは、タブからウィンドウに変更する理由が考えられません。

于 2012-10-11T12:53:57.663 に答える