【问题标题】:Debugging javascript code调试 JavaScript 代码
【发布时间】:2011-02-01 08:18:48
【问题描述】:

我的php页面中的脚本部分是这样的

<script type="text/javascript" >
    alert('Out');
    if (<?php echo $delFlag; ?> == 1) {
        alert('ting');
    } 
</script>

虽然下面的代码是我从 Chrome 开发者工具 (Resource>XHR) 中得到的(我用于调试)

<!-- For javascripts -->
<script type="text/javascript" >
alert('Out');
    if (1 == 1) {
        alert('ting');
    }
</script>

警报没有弹出。

我的代码有什么问题??

更新

我的代码在文件 add-line.php 中

<script type="text/javascript" >
//  $(function() {

        if (<?php echo $timer; ?> == 1) {
            //alert('Line');

            var timenow = <?php echo time(); ?>;
            var dataPass = 'lineId=' + <?php echo $lineId; ?> + '&storyId=' + <?php echo $storyId; ?> + '&timenow=' + timenow;
            $.ajax({
                type: "POST",
                url: "proc/updateDb.php",
                data: dataPass,
                cache: false,
                success: function(){
                    // Show error if error is there

                }
            }); 
        } 
//  });
</script>

现在在 updateDb.php 中,我正在使用 POST 值处理一些 CRUD 内容,然后确定 $delFlag 值。然后在这个文件的末尾,我的脚本为(与上面的第一个相同)

<script type="text/javascript" >
        alert('Out');
        if (<?php echo $delFlag; ?> == 1) {
            alert('ting');
        } 
    </script>

但这个脚本似乎根本没有被执行。

【问题讨论】:

  • 代码是正确的,问题一定出在代码以外的地方。
  • js 已经启用。那它一定在别的地方。几个小时都无法弄清楚在哪里..
  • 你可以自己检查它是否工作:取上面的代码,把它放在一个空白的“test.html”文件中,然后用浏览器打开它。必须显示警报。
  • @ptamzz - Resource&gt;XHR ?你的意思是说你在使用ajax?
  • 如果您在此代码执行之前有任何错误,将不会发出警报。错误控制台说什么?

标签: php javascript jquery ajax debugging


【解决方案1】:

我注意到您正在使用 ajax,如果您将脚本添加到 DOM,您将运行该脚本。

例如,如果您使用$.ajax()

$.ajax({
   url: 'some/url/',
   type: 'html',
   method: 'get',
   success: function(data){
      $('head').append(data);
      // data here would be the response from the server...
   }
});

【讨论】:

  • 你是个了不起的人..谢谢..为此奋斗了一整天。 :) 现在工作。
【解决方案2】:

你试过这个:

<!-- For javascripts -->
<script type="text/javascript" >
    var number = parseInt("<?php echo $delFlag; ?>");
    alert('Out');
    if (number == 1) {
        alert('ting');
    }
</script>

如果你愿意,你可以不加引号。但如果你使用一些编辑器,他们会把它标记为错误。

【讨论】:

    【解决方案3】:

    这样试试。错误信息会提示并尝试修复。

    <script type="text/javascript">
        alert('Out');
        try
          {
            if (<?php echo $delFlag; ?> == 1) {
                alert('ting');
            } 
          }
        catch(err)
          {
          alert(err.description);
          }
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-17
      • 1970-01-01
      • 2018-03-22
      • 1970-01-01
      • 2017-11-17
      • 2014-11-10
      • 2016-09-27
      相关资源
      最近更新 更多