C'est le jeu d'enfant de le faire dans Safari, qui a un bon soutien AppleScript. Le soutien de Google Chrome vient d'arriver, alors je leur donne le bénéfice du doute. J'essaie essentiellement d'attraper le HTML actuel via le presse-papiers afin que je puisse obtenir des informations. Nous avons des commandes nifty comme ceci: mais hélas vous ne pouvez pas dire " Toute aide serait appréciée. P> p> définir x sur la source de l'onglet actif de la fenêtre 1 code>". Personne n'a de suggestions pour moi? Mes idées actuelles sont de charger le code dont j'ai besoin dans l'arrière-plan de Safari (assez laid) ou d'essayer d'afficher la source et de l'attraper avec un script UI, mais c'est aussi laid. Aussi, je continue à rencontrer des bogues de script qui le maintiennent de fonctionner. P>
6 Réponses :
Voir comment Chrome comme support de Chrome a "vient d'arriver" il est tenu d'être "passionnant" à utiliser. En essayant certains des commandements qu'ils ont disponibles dans leur dictionnaire, il semble qu'ils ont toujours des kinks à travailler. Jusqu'à ce que Google expose une solution dans l'API pour obtenir le code source plus facilement (et / ou fonctionner dans les kinks associés), vous devrez utiliser l'une des alternatives que vous mentionnez dans votre message. p>
(J'ai un script qui frappe la commande `encore et encore jusqu'à ce que l'onglet en question se déplace, mais c'est lent et vraiment inélégant.)
Je suis très excité d'apprendre que Chrome a maintenant un support AppleScript. Il est regrettable que cela soit encore minime, mais je suis sûr que (j'espère!) Ça va aller mieux. Comme il n'ya aucun moyen d'obtenir la source directement, je choisirais la route piraquine suivante: Oui, c'est piraté, mais c'est inévitable, compte tenu de l'état actuel du dictionnaire de script. Le script doit être simple: ouvrez une onglet Source, attendez qu'il charge, sélectionnez le contenu, copiez-le et fermez l'onglet. Vous pouvez jouer avec le Delay 3 code> s pour voir ce qui fonctionne mieux. Notez que le premier em>
Onglet actif de la fenêtre 1 code> est arbitraire, le reste se réfère explicitement à l'onglet Source.
également, apparemment, il n'y a aucun moyen de fermer un onglet du dictionnaire de script de Chrome (Oy vey), alors je devais utiliser JavaScript à la place. S> aussi, le dernier Delay 1 code> > ne devrait-il pas être nécessaire, mais si ce n'était pas là, mes tests retournaient parfois la mauvaise chose, même si le contenu du presse-papiers était correct quand je les ai collées. Je pense que c'est parce qu'il y avait suffisamment de texte Il a fallu une quantité de temps notable pour mettre à jour le presse-papiers. P>
Exécutez l'onglet Actif de la fenêtre 1 JavaScript "window.close ()" < / Code> Avec l'onglet
Supprimer la ligne CODE>, comme on lui a été suggéré. Malheureusement,
Supprimer l'onglet Onglet Active de la fenêtre 1 code> ne fonctionne pas, vous avez donc besoin de cette construction légèrement plus compliquée. P> p>
Vous pouvez utiliser Supprimer l'onglet 3 code>. Le problème est l'architecture multi-processus, le HTML se trouve dans le rendu WHERAS Le code AppleScript est exécuté dans le processus de navigateur.
@ user265260: ooh, sympa. Merci! Je vais éditer cela dans ma réponse. En outre, juste hors de curiosité, pourquoi cette caractéristique de Chrome a-t-elle causé des problèmes? (Si vous connaissez la réponse.)
onglet Tell (l'onglet Active Index de la fenêtre 1) de la fenêtre 1 à supprimer code> devrait le faire. La chose est une onglet actif renvoie un objet d'onglet Type, Fermer n'est pas pris en charge dans l'onglet car il n'a aucun moyen de savoir quelle fenêtre il appartient (c'est la bonne façon car les onglets peuvent modifier leurs fenêtres).
Réponse courte: Comme je l'ai dit, le HTML vit dans Renderer, une manière possible consiste à évoquer la chaîne à l'aide de la CIB, mais il existe d'autres problèmes qui se présentent à la suite de cela.
tell application "Google Chrome" set t to active tab index of window 1 tell active tab of window 1 to view source set t to t + 1 repeat while (loading of tab t of window 1) end repeat tell tab t of window 1 to select all tell tab t of window 1 to copy selection delete tab t of window 1 end tell
Merci, c'est utile. Toujours faire des bris de l'interface utilisateur lourde, mais parce qu'il y a de petits bugs (des choses qui ne fonctionnent pas encore dans Google Chrome), c'est difficile. Une seule question que j'ai est, j'ai besoin d'ouvrir un onglet, d'obtenir des données de la page principale (c'est une URL bit.ly), puis fermez l'onglet montrant l'onglet Original. Pour quelque chose de la raison du script d'interface utilisateur, il veut revenir à un endroit étrange, la fin des onglets que je pense. Comment puis-je dire l'onglet de rachat 154 de la fenêtre 1 de devenir actif?
Information "Google Chrome" Set Onglet Active Index de la fenêtre 1 à / * Tout ce que vous voulez * / End Tell Code>
Depuis Google Chrome prend en charge JavaScript
--Applescript code tell active tab of window 1 set sourcehtml to execute javascript document.getElementsByTagName('html')[0].innerHTML end tell
Cela me donne Erreur de syntaxe B> Fin de ligne attendue mais des biens trouvés. I>
La bibliothèque App AppleScript de Chrome peut Ceci assignera la source complète de la page à Exécuter code> JavaScript.
source code> et renvoyer-le p>
La réponse simple est la suivante:
tell application "Google Chrome" activate tell active tab of window 1 set sourcehtml to execute javascript "document.getElementsByTagName('html')[0].innerHTML" return sourcehtml end tell end tell
Attendez, Chrome a le support AppleScript maintenant? Quand est-ce arrivé? Impressionnant!