10
votes

Comment ouvrir un nouvel onglet dans le thread séparé avec JavaScript? (chrome)

est-il possible d'ouvrir un nouvel onglet PopUP qui fonctionnerait dans un fil séparé? Pour être plus précis, si je crée un nouvel onglet Popup et démarrez le débogage dans ce nouvel onglet, onglet qui contient le lien mettra également en pause JavaScript jusqu'à ce que je clique sur Reprendre dans un nouvel onglet. Ce que je veux réaliser, c'est créer un nouvel onglet qui est séparé pour que je puisse le déboguer alors que l'onglet Parent continue de fonctionner. J'ai ce problème avec le navigateur Chrome. Notez que cela fonctionne bien dans Firefox (pas testé dans d'autres navigateurs).


0 commentaires

4 Réponses :


0
votes

Avez-vous essayé d'utiliser des travailleurs Web? Je ne sais pas sur le soutien, mais ils sont censés proposer des fonctionnalités d'exécution parallèles JS. Voir ici et ici .


1 commentaires

C'est surchargé pour ce problème. Comme cela fonctionne dans Firefox, je pense que la solution ne nécessite pas de modifications drastiques à mon code.



7
votes

Habituellement chrome force nouvelle fenêtre à exécuter sur le même identifiant de processus. Mais, il existe des techniques qui permettent aux sites d'ouvrir une nouvelle fenêtre sans le forcer dans le même processus:

Utilisez un lien vers un site Web différent qui cible une nouvelle fenêtre sans passer des informations sur le référent. P>

var w = window.open();
    w.opener = null;
    w.document.location = "http://differentsite.com/index.html";
  • Ouvrez le nouvel onglet avec à propos de: vide comme cible. Li>
  • Définissez la variable d'ouverture de l'onglet nouvellement ouverte sur NULL, de sorte qu'il ne peut pas accéder à la page d'origine. LI>
  • Rediriger à propos de: Blanc à un site Web différent de la page d'origine. Li> ul>

    Par exemple: p> xxx pré>

    techniquement, le site Web d'origine a toujours accès à la nouvelle via w code>, mais ils traitent. Ouvre = NULL comme indice pour stériliser la fenêtre. P>

    Source: https : //bugzilla.mozilla.org/show_bug.cgi? Id = 666746 p> p>


1 commentaires

Bonjour @Domagojk, connaissez-vous une autre solution de contournement pour "nouvel onglet pour ouvrir dans un nouveau processus tout en transmettant des informations de référence", celle acceptée ici ne semble plus appliquer.



2
votes

La version actuelle de Chrome n'apparaît pas utiliser un fil séparé lorsque vous utilisez le truc de Null Ofiler que Domagojk référencé. Toutefois, si vous êtes dans un gestionnaire JavaScript, vous pouvez toujours profiter du truc de Noreferrer Link, il mentionne:

        var e = document.createElement("a");
        e.href="/index.html";
        e.target="_blank";
        e.rel = "noreferrer";
        e.click();


0 commentaires

0
votes

Bien que pas exactement une réponse, c'est la meilleure réponse. La boîte de dialogue Imprimer ne doit pas bloquer.

J'ai signalé cela comme un bug et donné un cas de test. Montrez votre support ici - https://bugs.chromium.org/p/chromium/issues/detail?id=1023161&q=ryein%20Goddard&colspec=id%20pri%20M%20Stars% 20ReLeaseaseblock% 20Component% 20Status% 20Inteur% 20summary% 20OS% 20Modified

Je pense qu'une fois que Chrome corrige ce bogue, nous n'aurons plus à m'en souder. C'est vraiment le seul choix à ce stade.

Donc pour moi la réponse est que nous avons besoin de Google / Chromium pour résoudre ce problème.


0 commentaires