解释javascript和php代码

时间:2014-12-24 04:15:16

标签: javascript php

我从互联网上获取此代码,它可以正常工作

<script type="text/javascript">
var jvalue = 'this is javascript value';
<?php $abc = "<script>document.write(jvalue)</script>"?>   
</script>
<?php echo  $abc;?>

但是当我把</script>放在最后它停止工作时,请解释为什么它停止工作?

<script type="text/javascript">
var jvalue = 'this is javascript value';
<?php $abc = "<script>document.write(jvalue)</script>"?>   
<?php echo  $abc;?>
</script>

4 个答案:

答案 0 :(得分:2)

由于abc<script>document.write(jvalue)</script>且您无法嵌套<script>标记。正如你的第二个例子那样。你可以做到,

<script type="text/javascript">
    var jvalue = 'this is javascript value';
    <?php $abc = "document.write(jvalue)"?>   
    <?php echo  $abc;?>
</script>

你也可以这样做,

<?php $abc = "document.write(jvalue)"?>   
<script type="text/javascript">
    var jvalue = 'this is javascript value';
    <?php echo  $abc;?>
</script>

我认为这更符合最初的例子。

答案 1 :(得分:1)

语法不正确。根据W3 ​​HTML规范,脚本标记不能位于另一个脚本标记内。为了将来的调试目的,请尝试将整个输出字符串通过验证检查(validator.w3.org)。这将告诉您编码错误,并帮助您了解可以采取行动的错误。

答案 2 :(得分:1)

你得到的代码将生成像这样的HTML

<script type="text/javascript">
 var jvalue = 'this is javascript value';

</script>
<script>
  document.write(jvalue)
</script>

但是你改变的代码会产生这样的

<script type="text/javascript">
 var jvalue = 'this is javascript value';
   <script>
     document.write(jvalue)
   </script>
</script>

您无法在脚本标记内编写脚本标记。这就是它产生错误的原因

答案 3 :(得分:1)

当php回显变量$abc时,结果大致为:

<script type="text/javascript">
    var jvalue = 'this is javascript value';
    <script>document.write(jvalue)</script> 
</script>

这是无效的,因为您无法在另一个脚本标记(也称为“嵌套”)中放置脚本标记。

<script>删除$abc代码应该修复它。

以下方法可行:

<script type="text/javascript">
    var jvalue = 'this is javascript value';
    <?php $abc = "document.write(jvalue)" ?> 
    <?php echo $abc; ?> 
</script>

我不是PHP专家,但我希望如果代码中的其他地方不需要$ abc,那么这两行PHP行可以替换为:

<?php echo "document.write(jvalue)"; ?>