我有一个文件 - 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>
答案 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>