我在手册“PHP和HTML”中找到了PHP.net上的教程,并且有一个例子,Generating JavaScript with PHP。
我正在尝试一个简单的演示版本,我自己学习如何做到这一点,以便稍后我可以尝试更复杂的东西。现在,我只是尝试在PHP中声明一个字符串变量(一个JPG文件的地址),然后通过JavaScript(在PHP脚本中创建)将IMG元素的src更改为这个新地址。
有人建议使用JSON,我有一点经验,但只能使用PHP文件中的脚本发布到textfile。我不确定我是否可以使用GET请求或其他东西,老实说,我没有任何线索。我只是觉得这不会那么复杂。
以下是my page的链接,我试图这样做。
如你所见,我实际上是在尝试与在PHP中创建JavaScript相反,而是我试图在PHP中嵌入PHP,这是有人最初向我建议的,这不起作用。所以这就是为什么它是这样的。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Demo</title>
<?php
$srcmsg = 'http://www.newyorker.com/online/blogs/photobooth/NASAEarth-01.jpg';
?>
<script type="text/javascript">
//<![CDATA[
//
var msr = "<?php echo $srcmsg; ?>";
window.onload = document.getElementsByTagName('img').src= msr;
//]]>
</script>
</head>
<body><img src="#" alt="Picture of the world" height="42" width="42" />
</body>
</html>
解决方案:这是由Orangepill和Fred发现的.... 事实证明,其中一个重大问题是我的服务器无法解析html文件中的脚本,所以我不得不把它放在PHP文件中。那么解释xml声明中的short_open标签就出现了问题。所以这里是如何让它工作:请记住这是一个.php文件NOT .htm
<?php echo "<", 'xml version="1.0" encoding="UTF-8" standalone="no" ?'; ">\n"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Demo</title>
<script type="text/javascript">
//<![CDATA[
//
window.onload = function (){
var msr = '<?php $srcmsg = "http://www.newyorker.com/online/blogs/photobooth/NASAEarth-01.jpg"; echo $srcmsg; ?>';
var x = document.getElementsByTagName('img')[0];
x.src = msr;
}
//]]>
</script>
</head>
<body><img src="#" alt="Picture of the world" height="42" width="42" />
</body>
</html>
答案 0 :(得分:4)
getElementsByTagName
返回 NodeList (类似对象的数组),所以你必须这样做
window.onload = document.getElementsByTagName('img')[0].src= msr;
做第一张图片。
答案 1 :(得分:0)
<?php
$srcmsg = 'http://www.newyorker.com/online/blogs/photobooth/NASAEarth-01.jpg';
echo<<<_HTML
<script type='text/javascript'>
window.onload = document.getElementsByTagName('img').src= $srcmsg;
</script>
_HTML;
?>