2010-02-08 3 views
1

Un de mes amis utilise une application Web à des fins professionnelles. L'application est construite avec PHP/MySQL, et même si elle a du JavaScript pour le rendre plus facile à utiliser, elle n'est pas assez conviviale, et avec un peu de JS supplémentaire, beaucoup de choses peuvent être automatisées.Comment puis-je améliorer la fonctionnalité d'une page dont je ne devrais pas modifier la source?

Je voudrais améliorer cette application, mais je ne voudrais pas avoir à modifier le code côté serveur d'origine. Pour ce faire, tout ce que je pouvais penser était Greasemonkey. Est-ce la seule façon de le faire, ou est-ce que je rate quelque chose? J'aimerais aussi pouvoir utiliser un framework JS moderne, comme jQuery.

EDIT: Je devrais vous dire quelles améliorations je veux faire. Il y a beaucoup de champs sur la page, donc l'auto complétion aiderait beaucoup. Cela sera utilisé pour la saisie de données, ainsi AJAX peut être utilisé pour une vérification d'erreur.

Répondre

3

Greasemonkey est certainement une option. Une autre idée consiste à coder vos améliorations, puis d'en créer bookmarklets. Votre ami peut utiliser les signets (probablement dans une barre de favoris) pour faire les choses que vous avez améliorées. Les signets ont accès à la page comme s'ils faisaient partie de la page.

Edit 1 En fait, maintenant je pense à ce sujet, un bookmarklet devrait être en mesure de charger un fichier de script (à partir d'une autre origine) dans un document en ajoutant une balise script à la section head (bien, ou n'importe où, vraiment). Puisque le SOP est basé sur l'origine du document , pas le script, ... De cette façon, il devrait juste appuyer une fois sur le bouton (pour une page donnée) pour charger vos améliorations.

Édition 2 Yup, un bookmarklet peut être utilisé pour amorcer un fichier de script dans la page; voici un exemple:

javascript:(function(){var%20d=document,db=d.body||d.documentElement,elm;elm=d.createElement('script');elm.src="http://example.com/yourscript.js";db.appendChild(elm);db.removeChild(elm);})(); 

Cela ajoute un élément script du fichier http://example.com/yourscript.js au corps du document en cours, qui l'exécute. (Le bookmarklet supprime ensuite l'élément script, il suffit de l'ajouter, il ne doit pas rester, details.) Votre script peut alors faire des choses comme ajouter d'autres scripts (jQuery, dans votre exemple) de la même manière , lancez les auto-finisseurs, etc. Testé ci-dessus (qui a probablement besoin de réglage) avec Chrome et Firefox; IE ne l'aime pas mais je pense que c'est un problème avec mon encodage du bookmarklet ou quelque chose plutôt qu'un problème fondamental. (Je suis relativement nouveau pour bookmarklets.)

+0

Oui, mais si je voudrais le soutien d'autocomplétion? Je ne pense pas qu'ils vont aider. – Geo

+0

Oui. Voir ma modification juste maintenant. –

+0

Merci! Il est bon de savoir que les options existent :) – Geo

0

Je pense que Javascript peut manipuler à travers les cadres, n'est-ce pas? Vous ne pouvez pas simplement créer une page qui charge le site d'origine dans une image et vos améliorations de l'interface js dans une autre?

(MONTEE l'autorisation de l'employeur est aussi une bonne idée, si c'est pas été abordée)

+2

Pas si elles ne sont pas de la même origine, non: http://en.wikipedia.org/wiki/Same_origin_policy –

+0

S'il a la permission de l'employeur et que les améliorations sont convaincantes, alors il pourrait être capable d'obtenir la page encadrée servie du même serveur sans modifier n'importe quelle source originale. – Paul

Questions connexes