| |
|
|
| | Сам не вполне понимаю, как изложить проблему, поэтому попробую, как получится.
Суть вот в чем.
Осуществляется вывод информации средствами рнр в новом окне посредством вот такого скрипта (выводится через echo).
<script language="javascript" type="text/javascript">
// функция открытия нового окна
function creawind()
{
var nw;
nw=window.open('','','toolbar=no, scrollbars=no, left=100,top=150 '+',width=200, height=300');
nw.document.write('<h1>Привет, это новое окно</h1>');
}
</script>
|
При этом на практике текст вывода я ввожу в виде переменной $text. При этом, если
$text = '<h1>Привет, это новое окно</h1>' ;
|
то всё прекрасно, а если код html файла, то не работает, и при в диагностическом углу можно прочесть: "Выполнено, но с ошибками". Исследования показали, что причина не в коде как таковом, а в способе его представления!
Например, если написать так:
$text = '<h1>Привет, это
новое окно</h1>' ;
|
то тоже не работает! Хотя никаких знаков переноса (перевода строки) в коде нет, но как-то js это чувствует!
Вот что тут можно сделать? | |
| |
|
|
| |
|
|
| |
для: Владимир55
(10.07.2007 в 20:14)
| | | > Хотя никаких знаков переноса (перевода строки) в коде нет, но как-то js это чувствует!
Как нет?
$text = '<h1>Привет, это /*<< вот он перевод строки*/
новое окно</h1>' ;
|
Все переводы строк нужно заменять на "\n", это ж java. | |
| |
|
|
| |
|
|
| |
для: sms-send
(10.07.2007 в 20:41)
| | | Похоже, что так и есть!
Но что мне заменять на "\n"? Какой код у этого невидимого переноса?
Я прогнал через echo htmlspecialchars($text) и кодов все равно не увидел, хотя переносы строк на экране наблюдаются.
Так какой же код заменять?
====================
А на кодах типа
font face="Arial"><p style="text-indent: 50px"> <p style="text-indent: 50px"><?php include "../verh.php"; ?>
JS не споткнется? | |
| |
|
|
| |
|
|
| |
для: Владимир55
(10.07.2007 в 20:49)
| | | >Но что мне заменять на "\n"?
Заменять нужно перевод строки.
У вас:
document.write('первая строка
вторая строка');
|
Надо:
document.write('первая строка\nвторая строка');
|
>Какой код у этого невидимого переноса?
Он вполне видимый, ведь текст в редакторе переносится, а не остаётся на той же строке. Номера байтов 13 ("\r") и 10 ("\n").
>Я прогнал через echo htmlspecialchars($text) и кодов все равно не увидел, хотя переносы строк на экране наблюдаются.
htmlspecialchars фильтрует для вывода в html, а не в JavaScript.
>Так какой же код заменять?
<?php
$text='<html>
<head>
<title></title>
</head>
<body>
<script language="javascript" type="text/javascript">
document.write(\''.str_replace(array(chr(10),chr(13)),array('\n','\r'),'<h1>Привет, это
новое окно</h1>').'\');
</script>
</body>
</html>';
echo $text;
?>
|
Замену нужно делать именно при выводе строк в JavaScript. | |
| |
|
|
| |
|
|
| |
для: sms-send
(10.07.2007 в 21:29)
| | | Проблема совершенно исчезла!
Я даже попробовал ввести реальный код html файла, и он прекрасно воспроизвелся!
Однако функциональность решения вцелом нарушилась (я её плохо сформулировал). Созданный Вами код выводит информацию непрерывно, я мне надо запускать вывод кликом по ссылке и в новом окне. Примерно вот так:
$buff = "Привет, это
новое окно" ;
$text= <<< TEXT
<script language="javascript" type="text/javascript">
function creawind()
{
var nw;
nw=window.open('','','toolbar=no, scrollbars=no, left=100,top=150 '+',width=200, height=300');
nw.document.write(\''.str_replace(array(chr(10),chr(13)),array('\n','\r'),$buff ).'\');
}
</script>
TEXT;
echo $text;
$ssylka = '<a href="#" onclick="creawind();">Ссылка</a>' ;
echo $ssylka;
|
Однако, это не работает!
Пишет, что выполнено, но с ошибками, и ссылка не запускается!
Что то тут еще надо чуть-чуть подкорректировать... Но что? | |
| |
|
|
| |
|
|
| |
для: Владимир55
(11.07.2007 в 00:08)
| | | 1. <<<TEXT без пробелов
2. вывод кода рассчитан на то что вы будете его в ' брать, так как аргумент функции взят в \'. синтаксическая ошибка выходит | |
| |
|
|
| |
|
|
| |
для: bronenos
(11.07.2007 в 00:20)
| | | Выходит ошибка.
А как-нибудь исправить то её можно? | |
| |
|
|
| |
|
|
| |
для: Владимир55
(11.07.2007 в 00:49)
| | |
<?php
$buff = "Привет, это
новое окно" ;
$text='<script language="javascript" type="text/javascript">
function creawind()
{
var nw;
nw=window.open("","","toolbar=no, scrollbars=no, left=100,top=150 "+",width=200, height=300");
nw.document.write("'.str_replace(array(chr(10),chr(13)),array('\n','\r'),$buff ).'");
}
</script>'; // heredoc при вызове функций неуместен, поэтому используем кавычки
echo $text;
$ssylka = '<a href="#" onclick="creawind();">Ссылка</a>' ;
echo $ssylka;
?>
|
| |
| |
|
|
| |
|
|
| |
для: sms-send
(11.07.2007 в 00:53)
| | | Вот с такой переменной
$buff = "Привет, это
новое окно" ;
|
работает отлично!
Но с реальным текстом теперь не хочет... Видимо, замена переносов повредила что-то еще. Пишет: "Выполнено, но с ошибками", и ссылку не открывает. Вот такой реальный файл:
$buff = <<<TEXT
<html><head><meta http-equiv="Content-Language" content="ru">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><title>За неделю рост цен на петербургском рынке недвижимости составил 0,22%</title></head><body bgcolor="#E8E8FF"><table border="0" width="100%" id="table1" style="border-collapse: collapse">
<tr><td><p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"><?php include "../verh.php"; ?>
</p><p style="margin-top: 0; margin-bottom: 0; text-indent:50px">№ 97</p><p style="margin-top: 0; margin-bottom: 0; text-indent:50px"> </p>
<p style="margin-top: 0; margin-bottom: 0; text-indent:50px"><font face="Arial" size="4">За неделю рост цен на петербургском рынке недвижимости составил 0,22%</font></p><p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"><font face="Arial"><p style="text-indent: 50px">
Средняя цена предложения на вторичном рынке за истекшую неделю (с 4 по 11 июня) выросла на 0,22% и составила 69 861 руб. за кв. м. Чуть более значительный рост за тот же период времени показала средняя цена предложения квадратного метра в строящихся домах. Стоимость «квадрата» в новых домах выросла на 2, 44% и достигла 62 364 руб.
Отрицательную динамику продемонстрировали цены на комнаты - зафиксировано снижение их стоимости на 0,21%. Таким образом, средняя цена комнаты в Петербурге сейчас составляет 1 млн 246 тыс. руб. за кв.м.
</font></p><p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0; text-indent:50px"><font face="Arial">Дата публикации: 8 June 2007 года, 19 часов 00 минут</font></p><p style="margin-top: 0; margin-bottom: 0; text-indent:50px"><font face="Arial">Источник: http://www.bpn.ru</font><p style="margin-top: 0; margin-bottom: 0"> <p style="margin-top: 0; margin-bottom: 0"> <p style="margin-top: 0; margin-bottom: 0" align="center">
<font face="Arial"><a href="98.htm">Новость позднее этой</a> <a href="96.htm">Новость ранее этой</a></font><p style="margin-top: 0; margin-bottom: 0" align="center"> <p style="margin-top: 0; margin-bottom: 0" align="left"> <?php include "../niz.php"; ?></td></tr></table></body></html>
TEXT;
|
| |
| |
|
|
| |
|
|
| |
для: Владимир55
(11.07.2007 в 01:11)
| | | Какая-то чушь...Зачем Вы взяли код в heredoc? | |
| |
|
|
| |
|
|
| |
для: Unkind
(11.07.2007 в 04:21)
| | | Занес код в одинарные кавычки, но ровным счетом ничего не изменилось: "Выполнено, но с ошибками". И ссылка не открывается.
Похоже, что дело совсем не в этом! | |
| |
|
|
| |
|
|
| |
для: Владимир55
(11.07.2007 в 09:39)
| | | Вы пихаете PHP-код (include'ы) в переменную $buff.
Вы ожидаете, что он выполнится? | |
| |
|
|
| |
|
|
| |
для: Unkind
(11.07.2007 в 09:52)
| | | Я ожидаю, что воспроизведется записанный в $buff ttml файл, в коде которого имеется и include, и при воспроизведении файла include исполнится.
Собственно, так оно и было с кодом sms-send (10.07.2007 в 21:29) (на этой странице). Единственный недостаток того кода - он не понимает переноса строк. А после исправления переноса строк перестал читаться код вцелом.
Вот такая проблема! | |
| |
|
|
| |
|
|
| |
для: Владимир55
(11.07.2007 в 10:05)
| | | Воспроизведением HTML-файла занимается браузер.
include - конструкция PHP. Этим должен заниматься сервер.
Но Вы пихаете это в переменную.
К счастью, просто так интерпретатор не будет рассматривать значение переменной как PHP-код. | |
| |
|
|
| |
|
|
| |
для: Unkind
(11.07.2007 в 10:14)
| | | Для чистоты эксперимента я убрал из кода обе конструкции <?php include "../niz.php"; ?> И ничего не изменилось: пишет что выполнено, но с ошибками, и не обрабатывает ссылку.
В чем же теперь причина? | |
| |
|
|
| |
|
|
| |
для: Владимир55
(11.07.2007 в 11:45)
| | | Спасибо, справился! Все прекрасно выводит, и include в том числе. Просто надо было почистить код от ПС отдельным оператором, и уж потом направлять в JS. | |
| |
|
|