如何打开具有页面源代码的弹出窗口

时间:2013-12-27 07:51:27

标签: javascript php jquery

我有一个文件 - filedata.php 。在浏览器中打开时,该文件仅显示CLICK ME链接。点击CLICK ME链接后,会出现一个弹出窗口,其源代码为 filedata.php 。我写了下面的代码,但它不起作用(没有弹出窗口出现)。请帮我弄清楚错误。

SCRIPT -

<!DOCTYPE html>
<html>
<script src="jquery-1.9.1.js"></script>  
<script>
$(document).ready(function() {
   $("a.xy").click(function (event) {
        //Prevent default behavior
        event.preventDefault();
        var js_array = <?php echo json_encode($php_array) ?>;
        var disp = window.open('','','width=400,height=400');
        $(disp.document.body).text( js_array.join("\n") );
    });
});
</script>

PHP代码 -

<?php
// Get a file into an array.
echo '<a href="" class="xy" onclick="openWin()">CLICK ME!</a><br>';
$path='C:\wamp\www\directory_listing\filedata.php';
$lines = file($path);

// Loop through our array, show HTML source as HTML source; and line numbers too.
foreach ($lines as $line_num => $line) {
    $php_array[$line_num]="Line <b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />";
}

$html = implode('', file($path));
$trimmed = file($path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
?>
</html>

2 个答案:

答案 0 :(得分:0)

可以与新窗口进行通信但是无法将dom传递给新窗口。您基本上需要将生成的DOM转换为字符串,将其传递到新窗口然后解析它,就好像它一样是一份文件。

<强> Like This

答案 1 :(得分:-1)

您的hava使用了错误的方法来附加HTML代码,将$(disp.document.body).text( js_array.join("\n") );更改为disp.document.body.innerHTML = js_array.join("\n");

以下是我的所有代码:

<!DOCTYPE html>
<html>
<?php
// Get a file into an array.
echo '<a href="" class="xy" onclick="openWin()">CLICK ME!</a><br>';
$path='C:\wamp\www\directory_listing\filedata.php';
$lines = file($path);

// Loop through our array, show HTML source as HTML source; and line numbers too.
foreach ($lines as $line_num => $line)
{
    $php_array[$line_num]="Line <b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />";
}

$html = implode('', file($path));
$trimmed = file($path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
?>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
$(document).ready(function() {
   $("a.xy").click(function (event) {
        //Prevent default behavior
        event.preventDefault();
        var js_array = <?php echo json_encode($php_array) ?>;
        var disp = window.open('','','width=400,height=400');
        disp.document.body.innerHTML = js_array.join("\n");
    });
});
</script>
</html>