Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][JavaScript] document.write nie działa
Forum PHP.pl > Forum > Przedszkole
DannyM
Mam taki sobie problem. Musze wywołać widget. Wszystko jest OK jesli mam tak:

send = 'src="adres.html" '+'amount="' + amount + '" '+'email="' + email + '" ';

document.write('<script type="text/javascript" ' +send+ '><\/script>');

Ale musze go wywolac gdy zostanie naduszony klawisz. Jeśli zorbię jak poniżej nie działa.

  1. $('#button').click(function(){
  2. document.write('<script type="text/javascript" ' +send+ '><\/script>');
  3. });


Nie dla tego, że jakiś bład bo w konsolii nie ma żadnego. Poprostu czysty ekran.

Próbowalem

  1. let script = document.createElement('script');
  2. script.src = '"'+send+'"';
  3. document.head.append(script);


Ale w tym przypadku wstawia mi scieżkę lokalna + tą co wysyłam.
viking
A gdzie w tej funkcji przekazujesz użyta później zmienną send?
DannyM
Czyli powinno to wygladac tak? Sorry jeśli głupio pytam.


  1. $('#button').click(function(){
  2.  
  3. var send = html; // html to dane z powyżej funkcji
  4. document.write('<script type="text/javascript" ' +send+ '><\/script>');
  5. console.log(send);
  6. });
nospor
NIe

'<script type="text/javascript" ' blabla '><\/script>

a
'<script type="text/javascript" ' src="blabla" '><\/script>
DannyM
Oczywiscie już podaję co "podstawiam" w to miejsce

' src="adres.html" '+'amount="' + amount + '" '+'email="' + email + '" ';
Wiec jest tam src="adres.html"

Jak pisałem poza tą funkcją działa poprawnie
trueblue
document.write zapisuje do przetwarzanego w trakcie wczytywania kodu HTML. Jeśli dokument się załadował, to strumień jest ponownie otwierany i następuje zapis. A ponieważ jest ponownie otwierany, to otrzymujesz pustą stronę (czyści się).
Powinieneś użyć drugiej metody, którą wskazałeś, czyli dołączenie skryptu. Wyczytywany jest po ścieżce lokalnej, bo skrypt jest wykonywany na lokalnej maszynie. Powinieneś po prostu dodać protokół i domenę.
DannyM
Cytat(trueblue @ 25.02.2019, 16:40:37 ) *
document.write zapisuje do przetwarzanego w trakcie wczytywania kodu HTML. Jeśli dokument się załadował, to strumień jest ponownie otwierany i następuje zapis. A ponieważ jest ponownie otwierany, to otrzymujesz pustą stronę (czyści się).
Powinieneś użyć drugiej metody, którą wskazałeś, czyli dołączenie skryptu. Wyczytywany jest po ścieżce lokalnej, bo skrypt jest wykonywany na lokalnej maszynie. Powinieneś po prostu dodać protokół i domenę.


Dzieki. Czy widzisz jakies inne rozwiazanie?
trueblue
A to ma jakieś wady?
DannyM
Cytat(trueblue @ 25.02.2019, 16:54:07 ) *
A to ma jakieś wady?


Pewnie nie ale tu mam praktycznie wszystko gotowe tylko się nie wywołuje. Strasznie irytujące.
W ww metodzie będę musiał napisać to inaczej w JS nie jestem nawet "dobry".
trueblue
Przecież wystarczy podstawić ten drugi kod do obsługi zdarzenia click.
Odrębną kwestią jest dodanie protokołu i domeny, którą musiałbyś również dodać w przypadku pierwszej metody, gdyby działała.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.