Можно ли загрузить локальную версию файла JavaScript вместо версии сервера? - PullRequest
10 голосов
/ 01 апреля 2011

У меня был только один быстрый вопрос, чтобы выяснить, есть ли решение для этого ...

Давайте представим, что у меня нет доступа к серверу.Я загружаю веб-страницу и обнаруживаю, что они загружают файл Javascript из подпапки (скажем, /scripts/js/some.js)

Теперь я хочу внести изменения в этот файл локально и протестировать егодля всего сайта без загрузки всего сайта в локальную папку.

Кто-нибудь знает, как можно переопределить загрузку этого удаленного js-файла в пользу его локальной / отредактированной копии?

Ответы [ 5 ]

4 голосов
/ 01 апреля 2011

Попробуйте использовать noscript или adblock, чтобы заблокировать загрузку сценария на стороне сервера.Затем используйте greasemonkey , чтобы загрузить свой собственный скрипт.

4 голосов
/ 01 апреля 2011

Я действительно нашел решение для этого.Публикация подробностей для всех, кто приходит сюда, ищет его.

Privoxy (www.privoxy.org/) [Бесплатно] Позволяет делать это по большей части через редирект.Хотя Firefox может заблокировать перенаправление в зависимости от того, где вы его положили.Это означает, что вы, скорее всего, не сможете сохранить файл локально и сослаться на него через файл: // etc /

(хотелось бы, чтобы у меня был способ рассказать вам, как static fiddleс помощью JavaScript на веб-страницах у вас ограниченный доступ ... но я не нашел его. Если ответ придет, я приму его по этому вопросу. )

Конечно, у вас естьнастроить Privoxy и использовать его в качестве локального прокси-сервера.Это довольно просто, если вы используете его только временно: просто укажите в браузере прокси 127.0.0.1 на порту 8118.

Необходимо добавить перенаправление «действие по умолчанию» (Параметры> Изменить действия по умолчанию) вперенаправьте браузер, чтобы использовать новую копию:

{ +redirect{/newLocation/some.js} }
 /scripts/js/some.js
3 голосов
/ 30 января 2014

Если вы хотите использовать локальный файл вместо удаленного (в любом веб-браузере), я настоятельно рекомендую Charles Web Proxy. http://www.charlesproxy.com/

В Charles откройте меню Сервис и выберите Map Local. Добавьте новое сопоставление, введя адрес файла в Интернете, который вы хотите загрузить с вашего диска.

Edit Mapping Example

Эта методика подойдет для всех видов файлов (JavaScript, CSS, SWF). Конечно, у вас есть возможность временно отключить эту функцию, и она будет работать только во время работы Чарльза. Очень удобно.

1 голос
/ 14 апреля 2012

Хотя ваше решение с прокси-сервером несколько более устойчиво, я обнаружил, что с Fiddler вы можете сделать это практически без конфигурации:

Как заменить Javascript рабочего веб-сайта локальным Javascript?

0 голосов
/ 01 апреля 2011

В браузере, который поддерживает FileReader, например Chrome, да, в сочетании с 'eval' для выполнения произвольного JS. В своем HTML добавьте кнопку, чтобы пользователь мог нажать:

<form>
    <input type="file" name="file"
        onchange="loadJS(event.target.files);">
</form>

В ваших скриптах добавьте:

function load() {
  var reader = new FileReader();
  reader.onload = function(evt) {
    eval(evt.target.result);
  };
  reader.readAsText(files[0]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...