Как я могу улучшить функциональность страницы, источник которой я не должен изменять? - PullRequest
1 голос
/ 08 февраля 2010

Мой друг использует веб-приложение для рабочих целей.Приложение построено с использованием PHP / MySQL, и хотя у него есть некоторый JavaScript, чтобы с ним было легче работать, оно не достаточно удобно для пользователя, и с небольшим количеством дополнительного JS можно автоматизировать многие вещи.Я хотел бы улучшить это приложение, но мне не нужно изменять исходный код на стороне сервера.Для этого я мог думать только о Greasemonkey.Это единственный способ сделать это, или я что-то упустил?Я также хотел бы иметь возможность использовать современную среду JS, такую ​​как jQuery.

РЕДАКТИРОВАТЬ: я должен сказать вам, какие улучшения я хочу сделать.На странице много полей, поэтому автозаполнение действительно очень поможет.Это будет использоваться для ввода данных, поэтому AJAX также может использоваться для проверки ошибок.

Ответы [ 2 ]

3 голосов
/ 08 февраля 2010

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

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

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

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 голосов
/ 08 февраля 2010

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

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

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

...