Ouvrir plusieurs liens dans Chrome à la fois comme nouveaux onglets

j'essaie d'ouvrir plusieurs liens à la fois dans Google Chrome dans les nouveaux onglets, mais il échoue.

Problèmes:

  1. bloqué par popup
  2. Ouvrir dans de nouvelles fenêtres au lieu de l'onglet APRÈS QUE l'Utilisateur a autorisé le popup

avec ce , je peux ouvrir plusieurs liens à la fois dans Firefox:

<!DOCTYPE html>
<html ng-app="plunker">

<head>
    <meta charset="utf-8">
    <title>AngularJS Plunker</title>
    <script>document.write('<base href="' + document.location + '" >');</script>
    <link rel="stylesheet" href="style.css">
    <script data-require="angular.js@1.2.x" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.17/angular.min.js" data-semver="1.2.17"></script>
    <script src="app.js"></script>
</head>

<body ng-controller="MainCtrl">
    <button ng-click="openLinks()">Open</button>
</body>

</html>

aussi, je suis venu à travers quelqu'un qui a trouvé une solution de contournement .

j'ai essayé d'utiliser setInterval pour essayer d'ouvrir les liens individuellement mais il ne fonctionne pas.

9
demandé sur Zefir Zdravkov 2014-06-23 14:54:44

4 réponses

vous pouvez le faire en JavaScript vanille:

<html>
<head>
<script type="text/javascript">
function open_win() {
    window.open("http://www.java2s.com/")
    window.open("http://www.java2s.com/")
}
</script>
</head>

<body>
<form>
<input type=button value="Open Windows" onclick="open_win()">
</form>
</body>

</html>

voici une implémentation plus spécifique à Chrome (si les bloqueurs popup vous posent problème):

var linkArray = []; // your links
for (var i = 0; i < linkArray.length; i++) {
    // will open each link in the current window
    chrome.tabs.create({
        url: linkArray[i]
    });
}

voici de la documentation: https://developer.chrome.com/extensions/tabs

17
répondu Andrew 2014-06-26 16:37:04

la raison pour laquelle l'extension du navigateur peut le faire est que les extensions Chrome ont accès à une API Chrome spéciale , qui vous permet d'utiliser:

chrome.windows.create({tabid: n})

createData a une valeur tabid plus grande que n'importe quel onglet courant (et vous pouvez trouver le plus grand courant tabid en utilisant chrome.windows.getAll() ).

Cependant, en termes de le faire sur votre page (ou n'importe où qui n'est pas une extension Chrome), ce n'est pas possible, depuis si une nouvelle fenêtre s'ouvre ou non dans un nouvel onglet est entièrement déterminée par les paramètres de l'utilisateur .

3
répondu Patrick Collins 2017-05-23 10:31:09

le code suivant ouvrira popUp multiple sur le bouton cliquer.

<html>
<head>
<title></title>
<script type="text/javascript">
  function open_win() {
 window.open("url","windowName","windowFeatures")
 window.open("url","DifferentWindowName","windowFeatures")// different name for each popup
}
</script>
</head>

<body>
<form>
<input type=button value="Open Windows" onclick="open_win()">
</form>
</body>

vous devez vous assurer que chaque nom de fenêtre est différent, sinon le dernier popup écrasera son popup précédent. En conséquence, vous finirez avec un popup unique.

0
répondu Raihan Ridoy 2018-07-10 08:40:20

ressemble à extension utilise le code ci-dessous pour ouvrir ces onglets.

function openTab(urls, delay, window_id, tab_position, close_time) {
    var obj = {
            windowId: window_id,
            url: urls.shift().url,
            selected: false
    }

    if(tab_position != null) {
        obj.index = tab_position
        tab_position++;
    }

    chrome.tabs.create(obj, function(tab) {
        if(close_time > 0) {
            window.setTimeout(function() {
                chrome.tabs.remove(tab.id);
            }, close_time*1000);
        }
    });

    if(urls.length > 0) {
        window.setTimeout(function() {openTab(urls, delay, window_id, tab_position, close_time)}, delay*1000);
    }

}

Si vous voulez jeter un oeil au code de l'extension de référence, vous trouverez les extensions (pour Windows) C:\Documents and Settings\*UserName*\Local Settings\Application Data\Google\Chrome\User Data\Default\Extensions

-1
répondu nyzm 2014-06-26 01:02:54