IE8 odmawia uruchomienia Javascript z lokalnego dysku twardego

4

Mam problem, który niedawno rozpoczął się w pracy i menedżer sieci jest pewien, że nic nie zmienił w polityce grupy. Tak czy inaczej, oto szczegółowy opis problemu.

Mój komputer to Windows XP SP3 i używam IE8 do przeglądania. Mamy oprogramowanie antywirusowe McAfee, którego nie mogę skonfigurować. Używam następującego pliku do testowania ...

<!DOCTYPE html>
<html>
  <head>
    <title>Javascript Test</title>
  </head>
  <body>
    <script type="text/javascript">
      document.write("<h1>PASS</h1>");
    </script>
    <noscript>
      <h1>FAIL</h1>
    </noscript>
  </body>
</html>

Kiedy otwieram ten plik z dysku C: to się nie powiedzie każdego razu . Jeśli wykonam go gdziekolwiek indziej (lokalny / zdalny serwer WWW lub zmapowany dysk sieciowy), działa dobrze. Kiedy przeglądam Internet, Javascript działa na stronach internetowych. To jest tylko nie działa na plikach z mojego dysku C :. Dodatkowo miałem kilku innych programistów w dziale, którzy próbują tego pliku na dysku C: i działa to dla nich dobrze. Więc nie wierzę, że to sprawa polityki grupowej.

Muszę to naprawić, ponieważ przeprowadzam obszerne testy z dysku C: i jestem do tego przyzwyczajony. Nie chcę wdawać się w zwyczaj przenoszenia plików na inny dysk tylko w celu przetestowania.

Rzeczy, które próbowałem:

  • Włączone „Zezwalaj zawartości aktywnej na uruchamianie plików na moim komputerze” w Opcje | Zaawansowane | Bezpieczeństwo
  • Włączone „Zezwalaj na aktywne skrypty” w opcjach | Bezpieczeństwo | Poziom niestandardowy
  • Zweryfikowano, że opcja „Skrypt” nie została zaznaczona jako wyłączona w pasku narzędzi programisty
  • Dodano localhost do zaufanych witryn w opcjach
  • Wyłączono całkowicie McAffee (chwilowo, z pomocą administratora sieci)
  • Użyłem starszego DOCTYPE na mojej testowej stronie HTML
  • Całkowicie ponownie zainstalować IE8
  • Biegł regsvr32 na JScript.dll
  • Zatrzaśnięta klawiatura

Jestem pewien, że gdzieś istnieje ustawienie, które rozwiąże ten problem, być może w rejestrze. Nie zdziwiłbym się, gdyby był powiązany z paskiem narzędzi programisty. W tym momencie nie wiem, gdzie jeszcze szukać.

Czy ktoś może mi pomóc rozwiązać ten problem?

EDYTOWAĆ: Bez względu na nagrodę, ten problem nadal trwa.

Josh Stodola
źródło
cóż, działa to dobrze dla mnie w WinXP / IE8 (tak jak dla twoich kolegów), więc musi to być problem lokalny (i nie używam McAfee :). jeśli nie możesz skonfigurować oprogramowania zabezpieczającego, porozmawiaj z działem IT.
Dlaczego po prostu nie uruchomić go z lokalnego serwera internetowego? Dlaczego musi być uruchamiany z dysku C:?
Mark
1
@Molly próbowaliśmy całkowicie wyłączyć McAffee. Brak szczęścia. @Mark To nie mieć do. Chcę tego, ponieważ jest to łatwiejsze do szybkiego i brudnego testu. I zawsze działało wcześniej, więc jestem do tego przyzwyczajony.
Josh Stodola
IE ma zawsze poprosił mnie w żółtym pasku informacyjnym w górnej części okna, aby zezwolić na JavaScript z „Mój komputer” (najwyraźniej ponieważ zapewni dostęp do lokalnych zasobów, których skrypty z witryn internetowych nie otrzymują; przechwytywanie ekranu IE7 w img.skitch.com/20100106-khkek2wwscdxmak5x8k3y5gax3.png ). Tak mi się wydaje na komputerze zniknęło ostrzeżenie o uruchamianiu prawdopodobnie niebezpiecznych skryptów ? Może znajdziesz coś takiego jak „zresetuj wszystkie ostrzeżenia”? W opcjach IE7 jest nawet przycisk resetowania wszystkich ustawień IE? I czy możesz zwijać / rozszerzać lokalne pliki XML w IE?
Arjan
Czy inni programiści nie otrzymali tego ostrzeżenia na pasku informacji? (Więc: czy skrypt został uruchomiony bez pytania na ich komputerze?)
Arjan

Odpowiedzi:

4

Otwórz klucz rejestru

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\n

Gdzie n jest indeksem strefy, gdzie 0 znaczy My Computer. Ta strefa nie jest dostępna w opcjach internetowych. Ustalić wartość 1400 do 0 włączyć obsługę Javascript.

Bostjan
źródło
4

Czy próbowałeś dodać „Mark of the Web” do źródła HTML?

Po prostu dodaj coś takiego:

<!DOCTYPE html>
<!-- saved from url=(0021)http://www.google.com -->
<html>

Znak sieci jest po tagu DOCTYPE, sam w osobnej linii, tuż przed <html>.

Widzieć dokumentacja MSDN Mark of the Web za pełną pomoc.

AlexV
źródło
Miła myśl. To wciąż obejście problemu, ale fajny pomysł!
Arjan
... a to nie wymaga żadnych zmian w zasadach bezpieczeństwa, ustawieniach IE ...
AlexV
1
To działa, ale jest kiepskie. Dzięki :)
Josh Stodola
1
Dlaczego jest kulawy? Jest zdecydowanie lepszy niż obniżenie bezpieczeństwa całego systemu na jedną stronę (a czasem nawet nie jest to możliwe). Mark of the Web jest tutaj i jest najlepszym rozwiązaniem dla tego rodzaju „problemu” IMO. Jeśli jest coś kiepskiego, to IE! :)
AlexV
1
@ kentaromiura: Zaledwie rok później, ale ponieważ problem OP występuje tylko wtedy, gdy używany jest plik: //, w tym konkretnym przypadku jest to idealne rozwiązanie.
AlexV
1

jeśli komputer podlega korporacyjnym zasadom bezpieczeństwa, możesz rozważyć skonfigurowanie maszyny wirtualnej (np. za pomocą Wirtualne pudełko lub MS Virtual PC ) przetestować skrypty Java.

Microsoft oferuje wiele wstępnie aktywowanych wirtualnych dysków twardych (współpracują z VirtualBox i VPC) z systemami Vista lub XP oraz IE6, 7 i 8. Kompatybilność aplikacji Internet Explorer Obrazy VPC są bezpłatne, a aktualny zestaw jest ważny do 1 kwietnia 2010 r.


źródło
2
Rozumiem moje opcje obejścia i mam ich kilka na wyciągnięcie ręki. Jednak naprawdę chcę dowiedzieć się, dlaczego to nie działa na tej konkretnej maszynie. Jak wspomniano w moim pytaniu i innych komentarzach, przyzwyczaiłem się do pisania szybkich i brudnych testów Javascript na moim komputerze. Robię to przynajmniej od 2000 roku. To ciężki nawyk łamania się i odsuwa mnie, kiedy ja muszę zmienić sposób, w jaki pracuję, tylko dlatego, że jedna konkretna maszyna postanawia dać mi trudność. To śmieszne i dalekie od ideału. Musi być rozwiązanie.
Josh Stodola
problem może być związany z pakietem zabezpieczeń McAfee (którego nie można skonfigurować?). więc ponownie maszyna wirtualna bez McAfee jest jednym z szybkich sposobów, aby się tego dowiedzieć. to znaczy, nie ma możliwości rzeczywistego rozwiązywania problemów, jeśli nie możesz wyeliminować głównego podejrzanego, prawda?
@Molly, jak skomentowałem to pytanie, już próbowaliśmy całkowicie wyłączyć McAffee. Ponadto moi koledzy są objęci tą samą „polityką” McAffee i wszystko działa zgodnie z oczekiwaniami na ich komputerze. Zaktualizuję pytanie, aby dodać, że próbowałem. Dzięki!
Josh Stodola
„Próba wyłączenia” to dość rozbudowane wyrażenie. czy są jakieś identyczne maszyny w Twojej firmie? następnie sklonuj jeden na swoim komputerze, jeśli to możliwe. mówiąc o klonowaniu, stwórz pełny obraz dysku, a następnie zacznij go rozrywać, jeśli naprawdę interesuje Cię przyczyna. niezbyt efektywny kosztowo i robiłbym to tylko po to, by zaspokoić moją ciekawość zawodową.
Pozwólcie mi powtórzyć, że ... używając uprawnień administracyjnych całkowicie wyłączamy wszystkie usługi McAfee na moim komputerze i nie rozwiązano problemu. Dwaj koledzy mają identyczny maszyny jak ja i nie mają problemu. Identyczne jest rozciąganie, ponieważ oczywiście mam własne ustawienia osobiste zapisane w moim profilu użytkownika. Próbowałem zalogować się do jednego z tych identycznych komputerów, a kiedy to robię, wszystko działa dobrze. Zagadnienie jest całkowicie zlokalizowane na tej maszynie i nie mogę się nad tym ducha, ponieważ wtedy stracę wszystkie lokalne ustawienia dla aplikacji takich jak Visual Studio itp. Dzięki :)
Josh Stodola
1

Znam inne osoby, które miały ten problem, więc zbadałem to.

Po wielu wysiłkach, aby powtórzyć błąd, znalazłem sprawcę.

Przeczytaj to: http://social.answers.microsoft.com/Forums/en-US/InternetExplorer/thread/2a0b55bf-6807-4f72-b10c-53f958af9b42 i http://social.technet.microsoft.com/Forums/en-US/w7itprosecurity/thread/90c3202c-448b-42b7-acf7-dab8dba7b000

Wydaje się, że coś (wirus lub aktualizacja oprogramowania) zepsuło się w strefach internetowych.

Aby rozwiązać problem, wyeksportowałem cały rejestr i za pomocą edytora (ultraedit) wyszukałem „Ustawienia internetowe strefy”. założenie klucza takiego jak „{Exadecimal-USER-IDENTITY} ... Ustawienia internetowe Strefy L” gdzie L to dziwny znak, który wyświetla się jak indeks górny L, Po usunięciu javascript ponownie uruchomi się.

kentaromiura
źródło
0

Oto dwie myśli, które mogą pomóc:

Zmień nazwę na test.hta - spowoduje to uruchomienie go jako aplikacji HTML zamiast zwykłego HTML. Może być konieczne dodanie & lt; HTA: APLIKACJA & gt; z kilkoma atrybutami wewnątrz elementu HEAD - ale powinien działać jak mistrz. Możesz przeczytać więcej o HTA tutaj: http://msdn.microsoft.com/en-us/library/ms536496.aspx

Czy możesz użyć lokalnego serwera WWW, aby obejść problemy z systemem plików? Jeśli miałbyś zainstalować Visual Web Developer Express, jest on wyposażony w serwer WWW, którego możesz użyć do testowania, lub zawsze możesz zainstalować IIS (jeśli jest to WinXP Pro), Apache itp.

Goyuix
źródło
Zmiana na .hta działa, ale nie otwiera się w Internet Explorerze. Jestem świadomy opcji obejścia, ale ostatecznie muszę uruchomić JS na moim dysku C: w pliku HTML.
Josh Stodola
Aplikacja HTA korzysta z tego samego silnika renderowania i tego samego hosta skryptów Windows, aby dostarczać obsługę javascript jako Internet Explorer. Dlaczego otwieranie w Internet Explorerze jest wymagane? Twierdziłbym, że podczas gdy technicznie nie uruchamia się iexplore.exe - skutecznie działa on identycznie, jak w przeglądarce, z mniejszymi ograniczeniami bezpieczeństwa. Jeśli potrzebowałbyś go do uruchomienia w innych przeglądarkach lub innych systemach operacyjnych, to wymagałoby to spełnienia ... ale nie widzę tego na podstawie twojego pytania lub komentarzy.
Goyuix
Konkluzja: to jest obejście. Nie jestem fanem obejść. Nie będę spał, dopóki nie zrozumiem zasadniczej kwestii. Myślę, że to naturalne zachowanie programisty. Nie bierz tego osobiście, jest tu problem, który chcę rozwiązać , nie pracuj.
Josh Stodola
0

Próbuję edytować ustawienia modelu DCOM

Przejdź do Uruchom i wpisz dcomcnfg, w ramach usług komponentu kliknij prawym przyciskiem myszy mój komputer i przejdź do właściwości. Następnie przejdź do Właściwości domyślne i Włącz usługi internetowe COM na tym komputerze. sprawdź również i upewnij się, że Domyślny poziom uwierzytelniania jest ustawiony na Połącz, a poziom personifikacji jest ustawiony na Identyfikuj.

jburke
źródło
Cholera, myślałem, że to zadziała, ale bez kości. Problem nadal istnieje. Ale dziękuję za odpowiedź!
Josh Stodola
czy ponownie uruchomiłeś komputer?
jburke
Nie, nie zrobiłem tego, ale też spróbuję.
Josh Stodola
ok, zazwyczaj ustawienia dcom nie wejdą w życie, dopóki nie uruchomisz ponownie komputera. powodzenia!
jburke
Próbowałem zrestartować komputer, nadal nie miałem szczęścia. Darn :(
Josh Stodola
0

Jeśli przejdziesz do Opcje internetowe / Zakładka Zabezpieczenia / Internet / Niestandardowy, przewiń w dół do sekcji Różne, znajdziesz kilka pozycji kontrolujących silnik JavaScript w IE8.

Możesz porównać je na swoim komputerze z tymi na komputerze, na którym to działa.

Jeśli nie znajdziesz problemu, możesz również zrobić to samo
gpedit.msc / Lokalne zasady komputera / Konfiguracja komputera / Szablony administracyjne / Składniki systemu Windows / Internet Explorer.
Możesz tutaj kliknąć prawym przyciskiem myszy na „Internet Explorer” i wyeksportować wszystkie ustawienia do pliku tekstowego, co pomoże w porównaniu ich między dwoma komputerami.

harrymc
źródło
Spróbuję, dzięki!
Josh Stodola
0

Podejrzewam, że to nie pomoże, ale czy sprawdziłeś klucz rejestru, aby umożliwić uruchamianie lokalnych skryptów?

HKCU Software Microsoft Internet Explorer Główny FeatureControl FEATURE_LOCALMACHINE_LOCKDOWN

W prawym okienku utwórz nowe REG_DWORD o nazwie iexplore.exe i ustaw je na 0

Wartości:

0 - Allows a Web page to run active content in your computer
1 - Disallows a Web page from running active content in your computer

Ten dokument zawiera kilka innych powiązanych kluczy rejestru, które warto sprawdzić:

http://msdn.microsoft.com/en-us/library/ms537183(VS.85).aspx#registry

davidcl
źródło
Dzięki, ale DWORD już tam był i ustawiono na 0 :(
Josh Stodola
Przejrzę jednak inne wpisy rejestru; dzięki za link!
Josh Stodola
0

Nie jestem pewien, czy możesz dodać dysk lokalny do strefy Zaufane witryny.

Musisz sprawdzić ograniczenia w strefie i najlepiej ustawić ją na poziom niestandardowy i włącz wszystkie opcje dotyczące skryptów i ActiveX , ponieważ nawet na najniższym poziomie (ustawień wstępnych) nadal obowiązują ograniczenia.

Miałem podobny problem z IE6 i mogłem go naprawić, usuwając wszystkie ograniczenia strefy domyślnej (Internet). Jeśli w jakiś sposób udało Ci się dodać plik do zaufanych witryn, musisz także ustawić strefę na „poziom niestandardowy”.

Myślę, że to ustawienie należy włączyć na pewno:

Inicjalizuj i skryptuj formanty ActiveX, które nie są oznaczone jako bezpieczne dla skryptów. - Dotyczy zarówno „oznaczone jako niebezpieczne”, jak i „niezaznaczone”

venimus
źródło
Wydaje się, że nie pozwala mi dodać C: do strefy zaufanych witryn. Daje mi to głupi komunikat o nieprawidłowej sekwencji symboli wieloznacznych. Porównałem wszystkie ustawienia ActiveX z moimi kolegami i są one identyczne.
Josh Stodola
0

Możesz spróbować zweryfikować instalację IE8 za pomocą narzędzia Microsoft znalezionego w:
Jak rozwiązać problemy z instalacją programu Internet Explorer 8 .

Ten artykuł zawiera Fix It przycisk, który rozwiązuje ogólne problemy z IE8.

Cytuję:

Problemy z instalacją Internetu   Eksplorator 8 może być spowodowany przez inne   zagadnienia. Dlatego jest ich kilka   metody rozwiązywania problemów, które możesz   użyj, aby spróbować rozwiązać problem.

Aby rozwiązać ten problem automatycznie,   kliknij link Napraw ten problem. Następnie   kliknij Uruchom w oknie dialogowym Pobieranie pliku   i postępuj zgodnie z instrukcjami w tym   czarodziej.

Nawet jeśli to natychmiast rozwiąże problem, powinieneś ponownie uruchomić komputer i sprawdzić ponownie. Jeśli problem powrócił, jest to prawdopodobnie problem z GPO.

Ponadto znalazłem interesujący wątek, który może mieć zastosowanie:
Po aktualizacji IE8 - Otwórz Ostrzeżenie o zabezpieczeniach plików dla wszystkich lokalnych uruchomień .

Cytuję:

Po dużo czasu z   rejestr, internet i inne   alkohol (tylko żartuję), myślę, że ja   znalazłem źródło problemu. :) JA   jestem pewien, że to źródło   z tego, ponieważ mogę odtworzyć moje   problem przez przełączenie wartości a   pewien klucz rejestru tam iz powrotem.   Ciekawy? :) Ok, zaczynamy:

Nastąpił następujący klucz rejestru   zidentyfikowane, aby spowodować problem:   [HKEY_CURRENT_USER Polityki programowe Microsoft Windows CurrentVersion Internet   Ustawienia Lockdown_Zones 0]

Według KB182569   ( http://support.microsoft.com/kb/182569 )   ten klucz odpowiada za:   „Różne: uruchamianie aplikacji   i niebezpieczne pliki. ”

Ten sam artykuł określa również: „Uwaga   O ile nie podano inaczej, każdy DWORD   wartość jest równa zero, jeden lub trzy.   Zazwyczaj ustawienie zera ustawia a   konkretne działanie, jakie jest dozwolone,   ustawienie jednego powoduje wyświetlenie monitu   pojawiają się, a ustawienie trzech   zabrania konkretnych działań. ”

Odkryłem, że jeśli ustawię „1806” dword   wartość „0”, a następnie użyj zadania   menedżer, aby zabić zadanie „Eksplorator”   i zacznij od nowa, problem miał   zniknął. Jeśli zmienię wartość   wróć do „1” i zabiłem / uruchomiłem   Eksplorator ponownie, problem był   z powrotem.

Teraz zacząłem przeszukiwać mój system   zastosował obiekty zasad grupy i znalazł taki, który był   ustawienie tej wartości na „1”, co oznacza   monituj użytkownika. Jest ustawiony w a   GPO pod [Użytkownik   Konfiguracja / Administracja   Szablony / składniki systemu Windows / Internet   Explorer / Internet Control   Panel / Strona zabezpieczająca / Blokada Lokalna   Programy strefy maszyn / Lauching i   sekcja niebezpiecznych plików].

Tak jak powiedziałem, to jest źródło mojego   problem i teraz wiem, jak to naprawić.   Ale dla mnie dziwne jest to, że   ten sam obiekt GPO dotyczy komputerów IE7 i   problem tam nie występuje.   Zgodnie z opisem GPO,   ta funkcja była obsługiwana od IE7:

Uruchamianie programów i niebezpieczne   filesSetting Path:

Konfiguracja użytkownika / administracja   Szablony / składniki systemu Windows / Internet   Explorer / Internet Control   Panel / Strona bezpieczeństwa / Lokalnie zablokowane   Obsługiwana strefa maszyny: Przynajmniej   Internet Explorer 7.0ExplanationTo   ustawienie zasad kontroluje, czy   „Open File - Security Warning”   Monit wyświetlany jest podczas uruchamiania   pliki wykonywalne lub inne niebezpieczne pliki.

Na przykład, jeśli użytkownik uruchomi   plik wykonywalny z udziału w intranecie   przy użyciu Eksploratora Windows to ustawienie   kontroluje, czy pojawia się monit   wyświetlany przed otwarciem pliku.

Jeśli włączysz to ustawienie zasad i   lista rozwijana jest ustawiona na Włącz,   pliki zostaną otwarte bez zabezpieczeń   skłonić. Jeśli lista rozwijana jest ustawiona na   Monituj, pojawi się monit bezpieczeństwa   pokazane przed otwarciem plików.

Jeśli wyłączysz to ustawienie zasad,   pliki nie zostaną otwarte.

Jeśli nie skonfigurujesz tej zasady   ustawienie, użytkownicy mogą skonfigurować   szybkie zachowanie. Domyślnie wykonanie   jest zablokowany w strefie zastrzeżonej,   włączone w intranecie i lokalnym   Strefa komputera i ustaw monit na   Internet i strefy zaufane.

Tak więc na podstawie opisu   funkcja i czym byłem   doświadczam, przyszedłem do   wniosek, że IE7 radził sobie z tym   funkcja niepoprawnie i IE8 tak   wreszcie załatw to poprawnie. To   wyjaśniłoby, dlaczego aktualizacja do IE8   spowodowało pojawienie się funkcji.

harrymc
źródło
0

Jedynym sposobem na to jest przejście do Internet Ooptions i umieść localhost w zaufanych strefach, jednak naprawdę nie polecam tego, ponieważ może to prowadzić do wielu problemów.

Polecam ci też zainstalować Apache , Serwer Wamp (zawierający Apache w łatwym w użyciu pakiecie) lub IIS / Instalator platformy internetowej (zawierający IIS w łatwym w użyciu pakiecie).

Następnie, w zależności od tego, jak to skonfigurujesz, powinieneś mieć dostęp do witryny http: // nazwa_komputera - lub skonfigurować dodatkowe wpisy DNS dla intranetu lub podobnych. Jeśli masz wiele komputerów, które muszą uzyskać dostęp do tego skryptu, to również ułatwi aktualizację i wszystko inne.

Edytować -

Sprawdź to ustawienie w Opcjach internetowych -

alt text

William Hilsum
źródło
Dodanie localhost do zaufanych witryn nie działa. Zdaję sobie sprawę, że mogę skonfigurować serwer i używam go do mojego podstawowego rozwoju. Ale czasami po prostu napiszę szybki i brudny test (czasami na odpowiedź na pytanie na tej stronie!) I zapisz go na pulpicie, gdzie mogę łatwo wykonać i usunąć. Przyzwyczaiłem się do tego i działa dobrze na wszystkich moich innych komputerach oprócz tego. Coś to jest sprawa i musi istnieć sposób, aby to poprawić.
Josh Stodola
Czy może to być wersja Eksploratora Windows / Internet? Od czasu (chyba) SP2 XP javascript został zablokowany lokalnie.
William Hilsum
... zaktualizowane - Czy sprawdziłeś - i50.tinypic.com/29vcx15.jpg
William Hilsum
@ Tak Tak, wspomniałem o tym w pytaniu. Dodałem jeszcze kilka rzeczy, które wypróbowałem w tym pytaniu.
Josh Stodola
-1
  1. Uruchom program Internet Explorer.
  2. W menu Narzędzia kliknij polecenie Opcje internetowe.
  3. Na karcie Zaawansowane kliknij przycisk Resetuj.
  4. W oknie dialogowym Resetowanie ustawień programu Internet Explorer kliknij przycisk Resetuj, aby potwierdzić.
brent
źródło