12
votes

Comment instruire AppleScript pour ouvrir une nouvelle fenêtre Firefox avec un lien?

Mon code ressemble à ceci xxx

mais si j'ai Firefox Open, le lien s'ouvrira dans un nouvel onglet. Mais je veux que le lien soit ouvert dans une nouvelle fenêtre Firefox. Comment puis-je accomplir cela?


0 commentaires

5 Réponses :


5
votes

Essayez ceci ... xxx

ou essayez ceci ... xxx


2 commentaires

Openurl ne fonctionne pas avec Leopard ... mais votre deuxième astuce est géniale!


En ce qui concerne maintenant, nous sommes en réalité sur Mac OS 10.12.5. Cette solution ne fonctionnera plus. Si quelqu'un veut toujours le faire, vous devriez remplacer le openurl par emplacement ouvert, comme Blubb mentionne dans la réponse.



9
votes

Cela fonctionne, mais ouvre votre site de bienvenue dans la première onglet ...

tell application "Firefox" to activate
tell application "System Events" to keystroke "n" using command down
delay 3
tell application "Firefox"
    open location "http://rubyquicktips.tumblr.com/"
end tell


0 commentaires

4
votes

Je ne connais pas entièrement AppleScript, mais je cherchais à ouvrir une nouvelle fenêtre par défaut. Voici une méthode qui fonctionne: xxx

éventuellement, pour se concentrer sur la nouvelle fenêtre, ajoutez ces lignes après: xxx

Ceci ouvrira un nouvelle fenêtre par défaut. Il peut y avoir une meilleure façon.


0 commentaires

3
votes

Remarque:

à compter d'au moins Firefox V50, vous pouvez faire Firefox par défaut em> pour ouvrir des URL dans une nouvelle fenêtre, par décalage Ouvrir de nouvelles fenêtres dans un nouvel onglet Code> sur le Général code> onglet des préférences de Firefox. P>

Remarque, cependant, il s'agit d'un paramètre persistant qui affecte tous les URL em> ouverts de l'extérieur de Firefox . P>

La solution ci-dessous peut encore être d'intérêt si vous ne voulez pas compter sur l'état de ce réglage.
(Malheureusement, en raison de la prise en charge de AppleScript limitée de Firefox, il n'y a pas de solution similaire robuste pour toujours ouvrir dans un onglet em>, quel que soit l'état du réglage). P>


Voici une solution plus robuste que: p>

  • ne s'appuie pas sur un retard fixe et p> li>

  • est neutre de langue (de même que l'approche d'envoi de frappe); C'est-à-dire, il fonctionne également avec des noms localisés pour les menus et les commandes (par exemple, "datationi" pour "fichier", ...) p> li> ul>

    Toutefois, comme le script de l'interface graphique est utilisé pour cliquer sur programme sur un élément de menu, vous devez Autoriser l'application appeler em> pour l'accès assistif d'abord (une action ponctuelle nécessitant des privilèges administratifs) - par exemple, si votre script est exécuté à partir d'un terminal, vous devez autoriser terminal.app code>, mais même Editor.app code> doit être autorisé si vous souhaitez exécuter votre script tout en le développant. P>

    tell application "Firefox"
    
        # Make Firefox frontmost.
        activate
    
        # Wait until it is truly frontmost.
        repeat while not frontmost
            delay 0.1
        end repeat
    
        # Open a new window using GUI scripting (requires authorization for assistive access),
        tell application "System Events" to tell application process "Firefox"
            set windowCountBefore to (count of windows)
            # Click on File > New to open a new window, but locate it
            # by keyboard shortcut rather than by name, so as to also work
            # with localized menu names.
            tell menu 1 of menu bar item 3 of menu bar 1
                click (first menu item whose value of attribute "AXMenuItemCmdChar" is "N" and value of attribute "AXMenuItemCmdModifiers" is 0)
            end tell
            # Wait for the new window to appear.
            repeat while (count of windows) = windowCountBefore
                delay 0.2
            end repeat
        end tell
    
        # Finally, open the URL.    
        open location "http://example.org/"
    
    end tell
    
    • Dans des circonstances normales, si Firefox est réactif, cela devrait fonctionner de manière fiable. Cependant, le code pourrait être amélioré en mettant en œuvre des délais d'attente pour les boucles d'attente. P> LI>

    • Firefox n'est pas le plus rapide à l'ouverture de la nouvelle fenêtre, de sorte que Firefox s'active d'abord et la nouvelle fenêtre n'apparaîtra qu'une seconde environ environ. P> LI>

    • La nouvelle fenêtre aura invariablement un premier onglet vide et l'URL s'ouvrira dans l'onglet 2nd em>. p> li> ul>

      Remarque latérale RE Le Informulation d'application "Événements système" Pour indiquer le processus d'application "Firefox" Code> Construction: P>

      • Le bloc principal cible l'application Firefox em> ( Application "Firefox" code>). Li>
      • Toutefois, les scripts d'interface graphique doivent être effectués dans le contexte des événements système code> Application CODE> Application ( DONNER Evénements système " CODE>), et, dans ce contexte, c'est le Firefox processus em> qui doit être ciblé ( Tell Process Process "Firefox" Code>). Bien que vous puissiez écrire deux em> em> indiquer des blocs code>, ils sont combinés en un seul bloc ici pour une commodité et une brièveté. li> ul> p>


1 commentaires

@Drandall: Oui, quelle que soit l'application exécutée, le code de script de l'interface graphique doit être autorisé; J'ai ajouté un éditeur de script de note explicite. Réciduratifs: bonne idée, mais la réponse indique déjà "le code pourrait être amélioré en mettant en œuvre des délais d'attente pour les boucles d'attente"; En côté: ce n'est pas un manque d'autorisation qui pourrait entraîner des boucles spécifiques à rester bloqués (le 1er one ne nécessite pas d'autorisation, et le 2e on ne serait pas atteint si l'autorisation manquait).



-1
votes

Solutions qui "activent" sont fausses car elles changent de bureau xxx


3 commentaires

Re: "Solutions qui" activez "sont incorrectes car elles changent de bureau" - bien, ce n'est pas vrai si on n'utilise que l'un, et seulement vrai si l'utilisation de plusieurs et de l'application cible n'est pas ouverte sur le présent. En outre, l'OP souhaite ouvrir une URL dans cette nouvelle fenêtre et une telle réponse est incomplète.


n'ont pas trouvé une meilleure alternative, pour Safari, j'ai utilisé "Faire un nouveau document", mais avec une nouvelle mise à jour, ils ont fait une nouvelle fenêtre dans l'ouverture de safari pendant 5 secondes (IDK si elles l'ont fait exprès pour que M1 macs se sent plus rapidement)


L'OP parle de Firefox , donc Safari n'a rien à voir avec ça! Votre réponse telle que écrite est factuellement inexacte et incomplète de ce que la OP demande!