Открыть предварительный просмотр в about:blank

S
На сайте с 13.11.2012
Offline
72
730

Помогите изменить скрипт так, чтобы открывалась не страница (html код со всем содержимым) а та же страница но в окне about:blank, чтобы не было возможности увидеть код самой страницы.

Вызов

<a href="#previewModal" id="preview" data-toggle="modal" class="btn btn-inverse btn-embossed pull-right disabled actionButtons pixbtn" style="display: none"><i class="pi pixicon-eye"></i> Предварительный просмотр</a>


<form action="preview.php" target="_blank" id="pix_preview_form" method="post" style="display:none;">
<input type="hidden" name="markup" value="" id="markupField">
<button type="submit" type="button" class="btn btn-inverse btn-embossed btn-blue actionButtons pixbtn" id="pixshowPreview"><i class="pi pixicon-eye"></i> Предварительный просмотр</button>
</form>

preview.php


<?php
function generateRandomString($length = 10) {
$characters = '0123456789abcdefghijklmnopqrstuvfgjdghkdghhhhIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
$filename = "elements/preview_".generateRandomString(20).".html";
$previewFile = fopen($filename, "w");
$skeleton1 = file_get_contents('elements/sk1.html');
$skeleton2 = file_get_contents('elements/sk2.html');
if(!empty($_POST['customStyle'])){
$customStyle = " <style type=\"text/css\" id=\"pix_style\">\n" . stripslashes($_POST['customStyle']) . "\n</style>\n</head>\n<body>";
}else{
$customStyle = "\n</head>\n<body>";
}
$skeleton3 = file_get_contents('elements/sk3.html');
$final_preview = $skeleton1 . $skeleton2 . $customStyle . stripslashes($_POST['page']) . $skeleton3;
fwrite($previewFile, $final_preview);
fclose($previewFile);
header('Location: '.$filename);
?>

Отредактировать видимо нужно строку header('Location: '.$filename);

пробовал но не получилось.

Или использовать что-то подобное:

function createIFrame() {
var id = 'f' + Math.floor(Math.random() * 99999);
var div = document.createElement('div');
div.innerHTML = '<iframe style="display:none" src="about:blank" id="'+id+'" name="'+id+'" onload="sendComplete(\''+id+'\')"></iframe>';
document.body.appendChild(div);
return document.getElementById(id);
}

Спасибо!

ДП
На сайте с 23.11.2009
Offline
203
#1

Не очень понял задачу, можете сформулировать её на уровень абстракции выше? Превью чего вы хотите сделать так, чтобы не было видно исходного кода?

А то очень похоже на xy-problem http://7bloggers.ru/xy-problem/

S
На сайте с 13.11.2012
Offline
72
#2

Превью сайта, есть редактор сайта, вот нужно результат его работы открыть в страницу about:blank код которой не скопировать и саму страницу не сохранить, т.е. таким образом "защитить" результат.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий