Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [js] Dlaczego nie działa \n, Przejscie do nowej linii...
Terrqge
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 25.11.2011

Ostrzeżenie: (0%)
-----


Dopiero zaczynam uczyć się js'a i już napotkałem problem z przejściem do następnej linii. Może to i banalne, ale...

Mam plik html'a w standardzie XHTML 1.0 Strict.
A w nim:
  1. <script type="text/javascript" src="js/skrypt2.js" charset="utf-8"></script>


Natomiast skrypt2.js wygląda tak...
Kod
document.write("Pierwsza linia\n");
document.write("Druga linia\n");

...i wszystko wyświetla się w jednej linii... Czemu przejście do następnej linii w ten sposób nie działa?

Ewentualnie napisałem coś takiego

Kod
document.write("Pierwsza linia"+" <br>");
document.write("Druga linia"+" <br>);

...i wtedy działa. Ale czy to do końca jest poprawne? Zresztą, szybciej i prościej użyć \n. Co robie źle?

Ten post edytował Terrqge 25.11.2011, 21:48:07
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Poprawne. W htmlu nowa linia to <br/> a nie \n
Go to the top of the page
+Quote Post
Terrqge
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 25.11.2011

Ostrzeżenie: (0%)
-----


W takim razie dlaczego w różnych kursach itp, używają \n i im wszystko działa?
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
kim razie dlaczego w różnych kursach itp, używają \n i im wszystko działa?
Bo:
ALbo nie działa a tobie się wydaje że działa,
Albo tobie się wydaje ze działa, podczas gdy nie działa
(IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Terrqge
post
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 25.11.2011

Ostrzeżenie: (0%)
-----


Aha...

W takim razie na tej stronie w tabelce 2.1 Typy danych "\n" umieszczono ze świadomością, że nikomu nie zadziała i to tylko taki kit? (IMG:style_emoticons/default/thumbsupsmileyanim.gif)

Ten post edytował Terrqge 25.11.2011, 22:13:55
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Yyy, to że ktoś napisał
\n - nowy wiersz
to ty założyłeś że działa?? No bez jaj. Jak możesz pisać ze cos gdzieś działa, podczas gdy nie masz tego potwierdzenia??


A poza tym, \n to jest nowy wiersz, ale nie dla HTML. HTML jako nowy wiersz interpretuje jedynie BR. Jakbyś jednak podejrzał źródło strony to byś zobaczył że \n to nowy wiersz.
Nie kłóć się więc w rzeczach których nie rozumiesz, a już tym bardziej nie pisz, że coś działa, podczas gdy nie sprawdzasz na własne oczy że działa.
Go to the top of the page
+Quote Post
Terrqge
post
Post #7





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 25.11.2011

Ostrzeżenie: (0%)
-----


Dziękuję za odpowiedź... (IMG:style_emoticons/default/wink.gif)
Ależ ja nawet nie próbuję się kłócić.

W takim razie chyba już ostatnie pytanie. Skoro nie przy HTML to kiedy używamy tegoż że \n?

Ten post edytował Terrqge 25.11.2011, 22:22:23
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




W edytorze tekstu (IMG:style_emoticons/default/wink.gif)
Nowa linia w edytorze tekstu to jest właśnie \n tylko ty tego nie widzisz bo to znak specjalny. Ty go widzisz jako nowa linia (IMG:style_emoticons/default/smile.gif)

Inny przykład:

generujesz plik tekstowy z kilkoma liniami:
  1. $zm = "pierwsza linia\ndrugal linia\ntrzecia linia";

I taką treść tej zmiennej zapisujesz do pliku. Otworzysz plik edytorem i zobaczysz tam 3 linie. Proste.
Go to the top of the page
+Quote Post
Terrqge
post
Post #9





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 25.11.2011

Ostrzeżenie: (0%)
-----


Wybacz, ale nie zrozumiałem tego ostatniego przykładu.

O co chodzi z tym generowaniem pliku? I o jaki edytor tekstu Ci chodzi, o ten w którym piszę sobie skrypt?

Napisałem skrypt tak:

Kod
var n =  "pierwsza linia\ndrugal linia\ntrzecia linia";

document.write(n);


Mimo to, wyświetla się dalej w jednej linii...
Go to the top of the page
+Quote Post
wookieb
post
Post #10





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




http://www.google.pl/search?q=css+white-sp...lient=firefox-a
Go to the top of the page
+Quote Post
Terrqge
post
Post #11





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 25.11.2011

Ostrzeżenie: (0%)
-----


No ok i co dalej. (IMG:style_emoticons/default/biggrin.gif)
Mam dać white-space:nowrap do cssa jako <p>, a potem tekst wsadzić w js w znaczniki <p>... Pewnie nie, w ogóle do czego do miałoby służyć?

Może już was trochę zamęczam, ale chodzi mi tylko o konkretny przykład kiedy i jak używa się tego tajemniczego "\n". Nic więcej mi nie potrzeba...

Ten post edytował Terrqge 25.11.2011, 23:00:59
Go to the top of the page
+Quote Post
wookieb
post
Post #12





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Użyj http://jsfiddle.net i pokaż co masz.
Go to the top of the page
+Quote Post
Terrqge
post
Post #13





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 25.11.2011

Ostrzeżenie: (0%)
-----


A cóż miałbym mieć? Mam cały czas to samo....

html
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  4. <meta name="generator" content="Bluefish 2.0.1" />
  5. <meta name="author" content="Sk" />
  6. <meta name="date" content="2011-10-15T23:14:00+0200" />
  7. <meta name="copyright" content=""/>
  8. <meta name="keywords" content=""/>
  9. <meta name="description" content=""/>
  10. <meta name="ROBOTS" content="NOINDEX, NOFOLLOW"/>
  11. <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
  12. <meta http-equiv="content-style-type" content="text/css"/>
  13. <meta http-equiv="expires" content="0"/>
  14.  
  15. <link rel="Stylesheet" type="text/css" href="style.css" />
  16. </head>
  17. <div id="container">
  18.  
  19. <script type="text/javascript" src="js/skrypt2.js" charset="utf-8"></script>
  20.  
  21. </div>
  22.  
  23. </body>
  24. </html>


skrypt3.js
  1. var n = "pierwsza linia\ndrugal linia\ntrzecia linia";
  2.  
  3. document.write(n);


strona ktora sie wyswietla
  1. pierwsza linia drugal linia trzecia linia


Bo tego twojego white-space nie wiem za bardzo jak użyć i w ogóle po co? Chodzi mi tylko o to tajemnicze \n... Doczekam sie kiedykolwiek bezpośredniej odpowiedzi...

Ten post edytował Terrqge 25.11.2011, 23:10:33
Go to the top of the page
+Quote Post
wookieb
post
Post #14





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




  1. <div id="container" style="white-space: pre">
Go to the top of the page
+Quote Post
Terrqge
post
Post #15





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 25.11.2011

Ostrzeżenie: (0%)
-----


Ok, ale to działa w obrębie Html'a, a nie mojego skryptu. (IMG:style_emoticons/default/wink.gif)

Zresztą, nie ma sensu dalej ciągnąć wątku bo i tak nikt nie jest w stanie udzielić mi odpowiedzi na moje pytanie, czyli kiedy i jak stosujemy ogólnie zapis "\n"... O przechodzeniach do nowej linii innymi sposobami to ja już wiem.
Go to the top of the page
+Quote Post
wookieb
post
Post #16





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Przecież dostałeś JASNĄ odpowiedź, że w htmlu to tak po prostu NIE DZIAŁA. On nie wyświetla białych znaków. Możesz go do tego zmusić właśnie przez CSS. Czego tutaj nie rozumiesz?
Go to the top of the page
+Quote Post
Terrqge
post
Post #17





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 25.11.2011

Ostrzeżenie: (0%)
-----


Chodzi mi o to, że skoro nie działa w HTMLu to gdzie działa?
Bo juz wiem ze do htmla będę używać w js + "<br>".

Ten post edytował Terrqge 25.11.2011, 23:25:00
Go to the top of the page
+Quote Post
Kostek.88
post
Post #18





Grupa: Zarejestrowani
Postów: 376
Pomógł: 47
Dołączył: 23.08.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 25.11.2011, 23:22:13 ) *
W edytorze tekstu (IMG:style_emoticons/default/wink.gif)
Nowa linia w edytorze tekstu to jest właśnie \n tylko ty tego nie widzisz bo to znak specjalny. Ty go widzisz jako nowa linia (IMG:style_emoticons/default/smile.gif)

Inny przykład:

generujesz plik tekstowy z kilkoma liniami:
  1. $zm = "pierwsza linia\ndrugal linia\ntrzecia linia";

I taką treść tej zmiennej zapisujesz do pliku. Otworzysz plik edytorem i zobaczysz tam 3 linie. Proste.


O czym Ty mowisz? Jakim edytorze tekstu? Zwykly WYSIWYG na stronie? Chodzi po prostu zwykle zapisanie informacji w bazie, a potem skorzystanie z funkcji nl2br przy wyswietlaniu w textarea?

Kolega tu wspomnial, ze nie rozumie tego przykladu. Ja moge dodac tylko, ze "\n" mozna uzyc w PHP w niektorych przypadkach, bo o to mu chyba chodzilo.
Go to the top of the page
+Quote Post
nospor
post
Post #19





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
i tak nikt nie jest w stanie udzielić mi odpowiedzi na moje pytanie, czyli kiedy i jak stosujemy ogólnie zapis "\n"
Przecież podałem ci przykłady kiedy się używa \n. A to że nie zrozumiałeś to już nie moja wina. Ba, mało tego, nawet Kaloryfer nie zrozumiał, patrząc na jego post wyżej.... (IMG:style_emoticons/default/wink.gif)
Powód edycji: [nospor]:
Go to the top of the page
+Quote Post
kamil4u
post
Post #20





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


W takim razie ja postaram się wytłumaczyć (IMG:style_emoticons/default/smile.gif)
Gdy w HTML napiszesz:
Kod
<html>
<body>
  Pierwszy wiersz
  Drugi wiersz
  Trzeci wiersz
</body>
</html>
To wynikiem będzie: Pierwszy wiersz Drugi wiersz Trzeci wiersz. W rzeczywistości nie ma czegoś takiego jak entery, a znaki specjalne np. \n(nowy wiersz) czy \t(tabulator). Idąc tym tokiem rozumowania nasz kod tak naprawdę wygląda tak:
Kod
<html>\n <body>\n  Pierwszy wiersz\n  Drugi wiersz\n  Trzeci wiersz\n </body>\n</html>


Aby w HTML uzyskać nowy wiersz używamy <br>. Czyli nasz kod powinien wyglądać tak:
Kod
<html>
<body>
  Pierwszy wiersz<br>
  Drugi wiersz<br>
  Trzeci wiersz
</body>
</html>
, czyli w rzeczywistości:
Kod
<html>\n <body>\n  Pierwszy wiersz<br>\n  Drugi wiersz<br>\n  Trzeci wiersz\n </body>\n</html>


Teraz JS. Zapis:
Cytat
var n = "pierwsza linia\ndrugal linia\ntrzecia linia";
document.write(n);

Działa tak jakbyś ręcznie napisał:
Cytat
pierwsza linia
drugal linia
trzecia linia
, a że HTML czyta tylko <br> użytkownikowi na ekranie nic się nie zmienia.

Mam nadzieję, że zrozumiałeś (IMG:style_emoticons/default/smile.gif) - prościej nie umiem
Pewnie w tym co napisałem jest trochę nieprawdy, ale jak dla początkującego może być i tego się powinieneś trzymać (IMG:style_emoticons/default/smile.gif)

Pozdrawiam

Ten post edytował kamil4u 26.11.2011, 18:44:04
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 23:56