2010-02-08 1 views
1

Мой друг использует веб-приложение для работы, связанной с целями. Приложение построено с использованием PHP/MySQL, и, хотя у него есть JavaScript, чтобы упростить работу, он не является достаточно удобным для пользователя и с небольшим количеством дополнительных JS, многие вещи могут быть автоматизированы.Как я могу улучшить функциональность страницы, источник которой я не должен изменять?

Я хотел бы улучшить это приложение, но мне не нужно изменять исходный код на стороне сервера. Для этого все, о чем я мог думать, это Greasemonkey. Это единственный способ сделать это, или я что-то упускаю? Я также хотел бы иметь возможность использовать современную инфраструктуру JS, например jQuery.

EDIT: Я должен сообщить вам, какие улучшения я хочу сделать. На странице много полей, поэтому автозаполнение действительно поможет. Это будет использоваться для ввода данных, поэтому AJAX также может использоваться для некоторой проверки ошибок.

ответ

3

Greasemonkey - это, безусловно, вариант. Другая идея состоит в том, чтобы скопировать ваши улучшения, а затем сделать из них bookmarklets. Ваш друг может использовать закладки (возможно, в панели закладок), чтобы сделать то, что вы улучшили. Закладки имеют доступ к странице, как если бы они были частью страницы.

Edit 1 На самом деле, сейчас я думаю об этом, букмарклет должен быть в состоянии загрузить файл сценария (с другого происхождения) в документ, добавив script тег в раздел head (ну, или где-нибудь, действительно). Поскольку SOP основан на том, откуда пришел документ, а не сценарий ... Таким образом, ему просто нужно нажать кнопку один раз (для любой страницы, на которую он идет), чтобы загрузить ваши улучшения.

Редактировать 2 Yup, букмарклет можно использовать для загрузки любого файла сценария на страницу; вот пример:

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);})(); 

Это добавляет script элемент для файла http://example.com/yourscript.js в тело текущего документа, который выполняет его. (Затем букмарклет удаляет элемент script, просто добавляя его, его не нужно придерживаться, details.) Затем ваш сценарий может делать такие вещи, как добавление других сценариев (jQuery в вашем примере) таким же образом , запускать автозавершения и т. д. Протестировано выше (что, вероятно, нуждается в настройке) с Chrome и Firefox; IE не нравится, но я думаю, что это проблема с моей кодировкой букмарклета или чем-то, а не фундаментальной проблемой. (Я относительно новичок в закладках.)

+0

Да, но что, если я хотел бы поддержку автодополнения? Я не думаю, что они помогут. – Geo

+0

Да. См. Мое редактирование только сейчас. –

+0

Спасибо! Приятно знать, что существуют варианты :) – Geo

0

Я думаю, что Javascript может работать через рамки, не так ли?

Не можете ли вы просто создать страницу, загружающую исходный сайт в один фрейм, а ваши улучшения интерфейса js в другом?

(Получение разрешения работодателя также хорошая идея, если это еще не рассматривался)

+2

Нет, если они не из одного и того же происхождения, нет: http://en.wikipedia.org/wiki/Same_origin_policy –

+0

Если у него есть разрешение работодателя, и улучшения являются убедительными, то он мог бы получить обрамленную страницу, обслуживаемую с одного и того же сервера, без изменения какого-либо исходного источника. – Paul