2015-09-08 12 views
31

ja naprawdę nie rozumiem tego błędu chrome:Uncaught SecurityError: Nie udało się wykonać „replaceState” na „Historia”: nie można utworzyć w dokumencie z pochodzenia „zerowej”

Uncaught SecurityError: Failed to execute 'replaceState' on 'History': cannot be created in a document with origin 'null'

W Edge, Firefox i IE bez błędów.

Używam jquery 1.11.1 i jquery mobile 1.4.5.

To jest mój plik index:

<!DOCTYPE html> 
<html> 
<head> 

    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 

    <link rel="stylesheet" href="css/xy.min.css" /> 
    <link rel="stylesheet" href="css/jquery.mobile.icons.min.css" /> 
    <link rel="stylesheet" href="css/jquery.mobile.structure-1.4.5.min.css" /> 

    <title></title> 

</head> 

<body> 
    <div data-role="page"> 
     <div data-role="header" data-add-back-btn="true"> 
      <p align="center">Test</p> 
     </div> 

     <ul data-role="listview" data-filter="true" data-filter-placeholder="Kategorie suchen" data-inset="true" data-count-theme="b"> 
      <li><a href="assets/beck/index.html" data-rel"dialog" rel ="external">Bäckereien </a></li> 
     </ul> 

    </div> 
    <script src="js/jquery-1.11.1.min.js"></script> 
    <script src="js/jquery.mobile-1.4.5.min.js"></script> 
</body> 

</html> 

Każda pomoc mile widziane!

+0

Bez Twojego kodu JavaScript, nie będziemy mogli Ci pomóc ... – D4V1D

+0

@ D4V1D Nie zmieniłem jquery i po prostu go załadowałem. – olivier

+0

Czy używasz serwera WWW (lokalnie lub nie)? –

Odpowiedz

61

Dodaj to:

<script> 
    $(document).bind('mobileinit',function(){ 
     $.mobile.changePage.defaults.changeHash = false; 
     $.mobile.hashListeningEnabled = false; 
     $.mobile.pushStateEnabled = false; 
    }); 
</script> 

Tuż przed jquery.mobile-1.4.5.min.js

który współpracuje z systemem Android WebViewClient i Chrome w systemach Windows.

+0

Dzięki za ten skrypt. Obawiałem się, że moja aplikacja na Androida stanie się bezużyteczna (używając Webview tylko z lokalnym plikiem). – AxelH

+2

Po miesiącach pracy mogę odnieść się do tego uczucia. Miejmy nadzieję, że nie zmienią niczego innego. – eFMer

+6

Znalazłem, że potrzebuję tylko '$ .mobile.pushStateEnabled = false;' w skrypcie – BluGeni

25

Rozwiązanie dla mnie było to, że muszę uruchomić serwer WWW. Jest to nowa funkcja zabezpieczeń Chrome i nie będzie ona zmieniana zgodnie z Chromium Bug Post.

Podziękowania dla A. Wolffa!

+1

gdzie jest napisane, że ten błąd nie zostanie naprawiony? Znalazłem następujące problemy, które wciąż są otwarte - https://code.google.com/p/chromium/issues/detail?id=528681 – zumek

+1

Mój problem został rozwiązany po uruchomieniu go w przeglądarce Firefox .. :-) –

+2

najszybciej i Najłatwiej to zrobić: python -m SimpleHTTPServer 8080 –

0

Może to być również spowodowane przez Turbolinks (HTML pushState) podczas pracy z lokalnym plikiem HTML.

Powiązane problemy