该方法适用于单个 php 文件:
因此,在我的 html 页面中,我尝试使用 js 并调用 php 文件并通过 google prettify 突出显示内容
<!DOCTYPE html>
<html lang="en">
<head>
<link href="googleprettify/prettify.css" type="text/css" rel="stylesheet" />
<script src="googleprettify/prettify.js" type="text/javascript"></script>
<script>
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","callback_json.php",true);
xmlhttp.send();
}
</script>
</head>
<body onload="prettyPrint()" >
<button onclick="loadXMLDoc();">Get Data</button>
<div id="...">
<pre class='prettyprint;'>
function foo()
{
if (counter == 10)
return;
// it works!
}</pre>
</div>
<div id="myDiv">
need to be replaced
</div>
</body>
</html>
第一段代码工作得很好但是当我调用 php 文件时
<?php
$ch = curl_init();
$url='someurl';
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
echo '<pre class="prettyprint;"> ';
echo $data;
echo "</pre>";?>
并且返回代码无法突出显示。我怀疑 body onload="prettyPrint()" 是否存在问题,因为 prettyprint() 仅在页面加载时运行,但我不确定这一点。还是代码结构有问题?或者无论如何在不加载整个页面的情况下再次加载漂亮打印功能?