#php #javascript
#php #javascript
Вопрос:
Вот код, который у меня есть до сих пор:
$output = <<<BLOCK
<html>
<head>
<title>Preview!</title>
<script type="text/javascrit">
var content = $data;
</script>
</head>
<body>
<a href="" onclick="preview()">Click Me!</a>
<script type="text/javascript">
function preview(){
var preview = window.open('','preview','scrollbars=1,height=500,width=500,resizable=1');
preview.document.open();
preview.document.write(content);
preview.document.close();
}
</script>
</body>
</html>
BLOCK;
echo $output;
$data содержит полный html-документ, созданный php-скриптом.
Похоже, это не работает, но я думаю, вы можете понять, что я пытаюсь сделать.
Комментарии:
1. «javascrit» -> «javascript», но я сомневаюсь, что это ваша проблема. «[кажется, что] не работает» — это фраза, которую следует запретить в SO, потому что она так мало значит. Если это не сработало, что произошло ?
2. Появится новое окно, адрес примерно: пустой, заголовок без названия, а содержимое пустое. — То, что находится в $data, — это просто обычный html, ничего особенного.
Ответ №1:
Мы должны знать, что содержит $data , но вам, безусловно, нужно избегать кавычек или специальных символов…
Ответ №2:
«данные» генерируются из другого скрипта … мы можем это увидеть? ОБНОВЛЕНО: Вы не можете передать «содержимое» из head в body таким образом, оно равно null, попробуйте в качестве заданного параметра функции предварительного просмотра. Попробуйте получить к нему доступ, выполнив OPEN() .
Или сохраните «данные» в скрытом div или получите их через AJAX (предпочтительно). content2=null; content=»asdsadas»;
$data="asdsadas";
$output = "
<html>
<head>
<title>Preview!</title>
<script type="text/javascript">
var content2 = '".$data."'
</script>
</head>
<body>
<a href="" onclick="preview()">Click Me!</a>
<script type="text/javascript">
function preview(){
var content = '".$data."'
var preview = window.open('','preview','scrollbars=1,height=500,width=500,resizable=1');
preview.document.open();
preview.document.write(content);
preview.document.write(content2);
preview.document.close();
}
</script>
</body>
</html>";
echo $output;
Комментарии:
1. Привет, KA_lin, вы были очень полезны, я хотел бы оценить вас только за это, если это разрешено. Я решил свою проблему совсем по-другому. В вашем примере передача «простой» строки не вызвала никаких проблем. Именно тогда, когда я попытался передать некоторые html-теги / содержимое, у меня начались проблемы — у меня было более 200 строк HTML-содержимого. некоторые ошибки, которые я получил, заключались в том, что я использовал строковый литерал, неопределенную функцию и синтаксическую ошибку. (Я, вероятно, должен был упомянуть об этом ранее)
2. Я сделал две вещи, чтобы решить свою проблему: 1. разбил строку на массив 2. запустил addslahses для каждого значения массива. Затем я использовал document.write для вывода каждого элемента массива. Еще раз спасибо