2013-08-06 27 views
19

Wiem o obszarach roboczych ostatnio wprowadzonych w DevTools, ale to nie jest to, czego potrzebuję. Na przykład: strona używa jquery ładowanej z CDN, modyfikuję kod biblioteki jquery, wciskam ctrl-s, przeładowuję stronę -> modyfikacje są tracone. Albo chcę debugować jakąś stronę, ale nie mam możliwości zmiany plików.Czy istnieje sposób na zapisanie zmian css/js zdalnego zasobu między odświeżeniami strony lub mapowanie zdalnego zasobu na lokalny w devtools?

Nie chcę, aby tylko zapisywać zmiany, jak w save CSS - while browsing, how can I save the css files from inside chrome dev or firebug to local directory, chcę, aby przetrwały między odświeżeniami strony.

+0

Hej ludzie, dziękuję za wszystkie odpowiedzi. Niestety, żadna z odpowiedzi, która zależy wyłącznie od samego Chrome, działa dla mnie z jakiegoś powodu. Muszę założyć, że to błąd w mojej konkretnej wersji Chrome lub coś podobnego. Dam wszystkim odpowiedzi "+ 1", ponieważ wszystkie z nich sugerują jedno lub drugie użyteczne podejście do rozwiązania lub rozwiązania problemu. Dam nagrodę za odpowiedź, która już była obecna, ponieważ wydaje się lepiej pasować do pierwotnego pytania. Niestety, nie mogę ich przetestować i poprawić. – Septagram

Odpowiedz

6

Macie większość, ale tutaj jest nieznaczna zmiana:

Dokonaj zmian w panelu Style (lub w źródłach), a następnie kliknąć na źródeł, a gdy zmodyfikowany plik jest otwarty, uderzył ctrl -s.

Następnie można kliknąć prawym przyciskiem myszy zasób na liście Źródła i nacisnąć Zapisz jako ... i zapisać nowy zmodyfikowany plik na dysku.

enter image description here

Nie ma sposobu, aby zapisać zmodyfikowany plik zdalny bez utrzymującego go na dysku i oczekiwać, iż zostanie zmieniony na przeładowanie.

+5

Może nie powiedziałem tego wystarczająco wyraźnie. Zapisuję plik jako, edytuję go, zapisuję ponownie, ponownie ładuję stronę. Wynik: oryginalny (niezmodyfikowany) plik zostanie załadowany z serwera. Oczekiwany wynik: zamiast tego jest ładowany plik z dysku. Czy to możliwe? – vladimir

2

O ile wiem, nie można tego zrobić w programie narzędziowym Chrome. Powinieneś przejrzeć dokumentację o saving i making local changes. Jedyne, co wydaje się utrzymywać przez przeładowania, to snippets ... ale nie wygląda na to, że tego chcesz.

Jeśli kiedykolwiek znajdzie się rozwiązanie tego problemu ... Chcę tego. Na razie wydaje się, że najlepiej jest pisać skrypty i tym podobne.

2

Nie wiem, czy to kwalifikuje się jako odpowiedź, ale to, co robię, i im bliżej, że dostałem to, co chcesz.

Załaduję stronę w przeglądarce, a robię zapisz jako w pliku lokalnym. Zwróć uwagę, że zapisuję całą stronę przy pomocy HTML, js i CSS.

Teraz, jeśli chcę zmodyfikować CSS, edytuję HTML i kieruję ten plik (lub pliki) do moich plików programistycznych.

Załaduję ponownie stronę, a teraz mogę pracować, jak chcesz (zapisując i ponownie wczytując to, co zapisałem).

Oczywiście oznacza to, że masz pełny dostęp do plików i najprawdopodobniej są one lokalne, ale nie sądzę, że naprawdę chcesz edytować prawdziwe pliki internetowe.

Po zakończeniu modyfikacji plików, chodzi tylko o synchronizację moich plików dev z plikami sieciowymi.

3

Jest to możliwe, ale dość trudne:

  • otwartych zasobów i prawo Clik do folderu ze stylami \ Resources (fo nie zapomnij kliknąć „allow” w oknie dialogowym, które się pojawi poniżej paska adress)
  • następnie kliknij prawym przyciskiem myszy zasób betonu i wybierz „zapisz jako” (zapisz go do katalogu roboczego, który został określony w kroku poprz)
  • następnie kliknij prawym przyciskiem na ten sam zasób i wybierz „Mapa do systemu plików Zasób "(wri tak samo jak w poprzednim. krok, na przykład all.css ale nie all.css? id = 234234234, na wszelki wypadek)
  • zmodyfikuj style w narzędziach programistycznych.
  • odświeżyć stronę (i uświadomić sobie, że wszystko, co nie modyfikacje zastosowane)
  • otwartych zasobów, znajdź folder obszaru roboczego i Twojego zasobu w nim (np all.css)
  • prawym przyciskiem myszy na tego zasobu oraz wybierz „lokalne modyfikacje”
  • w otwartej konsoli kliknięcie na „stosuje oryginalną zawartość” i uświadomić sobie, że ty style została zastosowana =) to zakończyć się trudną drogę i lepszym pomysłem jest użycie czegoś podobnego Skrzypek zastąpić zasoby lokalne akta.
5

Workspaces pozwala na edycję plików odwzorowanych do lokalnego katalogu - ale oczywiście warunkiem wstępnym jest serwowanie plików lokalnych.

Jeśli grasz z plikami, do których nie masz bezpośredniego/wygodnego dostępu (z jakiegokolwiek powodu), zalecamy skonfigurowanie serwera proxy, takiego jak Burp. W skrócie, można uzyskać modify the server response i wykonać wyszukiwanie w locie i zastąpić jak cdn.example.com/jquery-library.js na localhost:8080/jquery-library.js w treści html. Wszystko, co musisz zrobić później, to skonfigurować serwer lokalny (trywialny) i edytować lokalną instancję skryptu!

Jest to poręczny wzorzec służący do podglądu zmian lokalnych względem zawartości produkcyjnej, o ile nie jest używany zamiast środowiska testowego.

3

Można spróbować ten sposób (jQuery):

-load na stronę po raz pierwszy i na karcie źródeł umieścić punkt przerwania na linii numer 1 -Potem przeładować stronę zmodyfikować plik i zapisać (ty widać, że strona została wstrzymana ze względu na punkt przerwania) -wybierz przycisk odtwarzania, a strona zacznie się ładować. Wprowadzone modyfikacje będą działać. Wadą tego rozwiązania jest to, że po ponownym odświeżeniu strony modyfikacje zostaną utracone.

Nadzieję, że pomaga!

2

Note Wykorzystuje bibliotekę jQuery (nie wymagane)

spróbować na console

function restyle() { 
    $("*").css("color", "blue"); /* development elements, css, js */ 
    $("head").append("<script>console.log(\"restyle\")</script>"); /* js */ 
    var t = document.querySelectorAll("*"); /* modified document */ 
    var outer = document.documentElement.outerHTML; /* modified document */ 
    var inner = document.documentElement.innerHTML; /* modified document */ 
    return $.ajax() /* `pseudo` `reload` */ 
    .done(function(data) { /* original document */ 
    document.documentElement.innerHTML = outer; /* `psuudo` `document` `reload` */ 
    console.log(data, inner, outer, $(t)) /* options, `callbacks` */ 
    /* $.each($(t), function(index, value) { console.log(value) }); */ 
    }) 
}; 
restyle(); 
2

używam apache w trybie debugowania z Eclipse więc cahnges są odzwierciedlone na miejscu jak najszybciej zapisać Strona.