php中的javascript

php中的javascript,php,javascript,html,Php,Javascript,Html,以下代码不适用于我 <body onload = "<?php foreach($arr as $a){ echo "<script language = javascript> popup_show(\''.$a.'\', \'popup_drag\', \'popup_exit\', \'screen-top-left\', 20, 20) <script>"; } ?>" > 将Javascript代码放入事件处理程序(例如onloa

以下代码不适用于我

<body onload = "<?php 
foreach($arr as $a){
echo "<script language = javascript> popup_show(\''.$a.'\', \'popup_drag\', \'popup_exit\', \'screen-top-left\', 20,  20) <script>"; 
}
?>" >

将Javascript代码放入事件处理程序(例如onload=“”)时,不需要包含HTML脚本标记

所以你只需要:

<body onload = "popupshow(...)">

您的完整示例如下:

<body onload = "<?php 
foreach($arr as $a){
  echo "popup_show(\''.$a.'\', \'popup_drag\', \'popup_exit\', \'screen-top-left\', 20,  20)"; 
}
?>" >

它失败,因为它在完成输出时不是有效的HTML:

<body onload="<script language = javascript> alert('Hello') <script>">

您正在生成无效的HTML。您不能将
脚本
元素(实际上是任何元素)放入另一个HTML元素的属性中(在本例中为
正文


事件属性只接受javascript。所以,你可以这样做

<body onload = "alert('Hello')">

那就行了

因为看起来您想要从一组数据构建JavaScript命令,所以我可以推荐这种方法吗

<html>
<head>
  <script type="text/javascript">

  onload = function()
  {
  <?php 
    foreach($arr as $a)
    {
      echo "    popup_show('$a', 'popup_drag', 'popup_exit', 'screen-top-left', 20,  20);\n"; 
    }
  ?>
  }
  </script>
</head>
<body>
</body>
</html>

onload=函数()
{

这可能就是问题所在。您的输出是无效的。请删除脚本标记,它应该可以工作。这将失败,因为您没有用分号结束
popup\u show(…)
。您正在生成的是
popup\u show(…)popup\u show(…)popup\u show(…)popup\u show(…)
在这篇文章中没有看到jQuery标记。我认为跨浏览器事件处理的课程不适合这个问题。你仍然可以在没有库的情况下正确附加事件。对,使用
attachEvent
addEventListener
因为
window.onload=
也是一种不好的做法。我在同意y之间左右为难ou(我本应该展示“正确”的方式)考虑到这样的细节会分散我对问题答案的注意力。大约一个月前,我也遇到过同样的困境。对我来说,学习的地方也是如此,其中一部分就是学习如何正确处理。虽然解释如何通过HTML属性附加事件更容易、更简短,但它只会导致同样的问题还有更多糟糕的编程。我知道OP显然是个新手,但如果我们总是迎合最低的公分母,他/她的理解将继续缺乏。在开始使用PHP创建弹出广告之前,你真的应该学习PHP的原理。他的PHP ot没有任何问题但是,在继续之前,他应该更加熟悉JavaScript。但是,我如何将$arr数组从主体传递到JavaScript函数呢?
<!-- This is not valid! -->
<body onload = "<script language = javascript> alert('Hello') <script>">
<body onload = "alert('Hello')">
<html>
<head>
  <script type="text/javascript">

  onload = function()
  {
  <?php 
    foreach($arr as $a)
    {
      echo "    popup_show('$a', 'popup_drag', 'popup_exit', 'screen-top-left', 20,  20);\n"; 
    }
  ?>
  }
  </script>
</head>
<body>
</body>
</html>