|
|
|
Изменение содержимого страницы полностью. DOM. HTML. JS.
|
|||
|---|---|---|---|
|
#18+
Ситуация - мне нужно отобразить превью страницы. Собирается HTML из БД. Кликаю на кнопку, там вот что: Код: javascript 1. 2. 3. Ну вопервых 'location=no' почемуто не работает.Ну ладно. Открывается php, там происходит загрузка, и прочие прелести и в итоге получаю переменную $html. От <html> до </html>. Потом запускаю скрипт Код: javascript 1. 2. 3. Но контент не подменяется, поэтому приходится сохранять на диск preview.html и document.location указывать на файл. Как собственно подменить контент страницы без подобных манипуляций, потому что при разных превью, надо обязательно жать F5, т.к. страница кешируется? Не смог подобрать магический пассворд к гуглу, чтобы найти нужную инфу. Все не то вылазит. Еще вопрос : как лучше посылать html в письмах - только то, что между тегами <body> или весь документ включая <html>? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2012, 15:11:14 |
|
||
|
Изменение содержимого страницы полностью. DOM. HTML. JS.
|
|||
|---|---|---|---|
|
#18+
Если в переменной $html есть <script>, то проблема возможно в этом. Правда я не вижу разницы между window.write(<?php echo $html; ?>); и просто php echo $html с точки зрения кэша. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2012, 15:38:16 |
|
||
|
Изменение содержимого страницы полностью. DOM. HTML. JS.
|
|||
|---|---|---|---|
|
#18+
Код далеко не полный =) неизвестно что в северной переменной $html скорее всего выводится простой html не заключенный в кавычки и без экранирования их Письма можно посылать вложив их к конверт и отправив по почте. еще нужно указать адрес а то письмо может вернутся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2012, 15:51:40 |
|
||
|
Изменение содержимого страницы полностью. DOM. HTML. JS.
|
|||
|---|---|---|---|
|
#18+
У вас как-то все в кучу навалено. 1. Такого метода window.write - нет. 2. Если хотите переправить на созданный файл window.location.replace('preview.html'); 3. Не хотите сохранять файл - сделайте php файл (например view.php), типа Код: php 1. и переправляйте туда window.location.replace('view.php'); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2012, 16:12:21 |
|
||
|
Изменение содержимого страницы полностью. DOM. HTML. JS.
|
|||
|---|---|---|---|
|
#18+
Primus inter paresУ вас как-то все в кучу навалено. 1. Такого метода window.write - нет. 2. Если хотите переправить на созданный файл window.location.replace('preview.html'); 3. Не хотите сохранять файл - сделайте php файл (например view.php), типа Код: php 1. и переправляйте туда window.location.replace('view.php'); ПРошу прощения - document.write. Про echo почеуто не подумал... хм... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2012, 16:15:21 |
|
||
|
Изменение содержимого страницы полностью. DOM. HTML. JS.
|
|||
|---|---|---|---|
|
#18+
Малыхин СергейКод далеко не полный =) неизвестно что в северной переменной $html скорее всего выводится простой html не заключенный в кавычки и без экранирования их Письма можно посылать вложив их к конверт и отправив по почте. еще нужно указать адрес а то письмо может вернутся В переменной простой html без js. Вот с экранированием я не понял: html_entity не помог, кавычки ставил при выводе. в результате в тексте хтмл получается: <script> document.write('<html><body>.....'); </script> В коде помоему только двойные кавычки, но все равно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2012, 17:26:54 |
|
||
|
Изменение содержимого страницы полностью. DOM. HTML. JS.
|
|||
|---|---|---|---|
|
#18+
Попробуйте так: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2012, 17:48:57 |
|
||
|
Изменение содержимого страницы полностью. DOM. HTML. JS.
|
|||
|---|---|---|---|
|
#18+
_Промешан_В коде помоему только двойные кавычки, но все равно. Если переменная $html == "<html><body>тест<body></html>" то код уже ошибочен т.к. в строке есть символ "/" который нужно экранировать (т.е. заменить на "//") если в строковой переменной встретится не экранированная кавычка то она закроет строку в функции document.write и весь остальной текст превратится в мусор в браузере. Браузер будет пытаться интерпретировать этот мусор как JS код что приведет к ошибке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2012, 18:14:12 |
|
||
|
Изменение содержимого страницы полностью. DOM. HTML. JS.
|
|||
|---|---|---|---|
|
#18+
Малыхин Сергей_Промешан_В коде помоему только двойные кавычки, но все равно. Если переменная $html == "<html><body>тест<body></html>" то код уже ошибочен т.к. в строке есть символ "/" который нужно экранировать (т.е. заменить на "//") если в строковой переменной встретится не экранированная кавычка то она закроет строку в функции document.write и весь остальной текст превратится в мусор в браузере. Браузер будет пытаться интерпретировать этот мусор как JS код что приведет к ошибке Я имею в виду что чистый получаемый html такой: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. Ну вот такой превью показать надо, ну а потом направить почтой. (тут я пока не понял, но проверял на мейл и гмейл - они жрут оба варианта - что просто только body, что весь html, но вот почтовые программы не проверял, как с ними?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2012, 19:19:49 |
|
||
|
Изменение содержимого страницы полностью. DOM. HTML. JS.
|
|||
|---|---|---|---|
|
#18+
Появился HTML =) Удали переводы строки в HTML ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2012, 19:41:21 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=37952812&tid=1449354]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
198ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 510ms |

| 0 / 0 |
