添加全能的CDATA标签到一些php响应的jQuery

Adding the almighty CDATA tag to some PHP-echoed jQuery

本文关键字:php 响应 jQuery 标签 CDATA 添加      更新时间:2023-09-26

附在这个问题的底部是一些代码,是在一个基于php的Wordpress插件中显示出来的。我需要找出一种方法来确保这个javascript被包装在CDATA中,因为它会干扰RSS提要生成器。任何帮助将是感激的,我已经尝试了几种方法,它不是真的正常工作。除了RSS提要问题,插件的一切都很好:/谢谢!!

        echo '<div id="flickr-images">';    
                 echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>';
                 echo '<script type="text/javascript">';
                 echo   ' $(document).ready(function() {'; 
                 echo '$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?id=' .$userid. '&format=json&jsoncallback=?", function(data) {';
                 echo '    var target = "#flickr-images";'; 
                 echo '      for (i = 1 ; i <=' .$numpics .'; i = i + 1) {';  
                 echo '                 var pic = data.items[i];';
                 echo '                 var liNumber = i + 1;'; ?> 
                                $(target).append("<li class='hi-flickr-image hif-no-" + liNumber + "'><a title='" + pic.title + "' href='" + pic.link + "'><img src='" + pic.media.m + "' /></a></li>");
                            }
                           });
                        });
                 </script>

         <?php  echo '</div>';

要么我不明白这个问题,要么这就是你想要做的:

echo '<![CDATA[';
// all the javascript echoed here
echo ']]>';

编辑

我想你已经意识到上面的代码缺少一些echo语句。jquery部分中的一些单引号看起来也像是在抛出它。这个php没有执行,对吧?无论如何,看看这是否有效,但我可能在某处错过了一些引号…

echo '<div id="flickr-images">';    
echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>';
echo '<script type="text/javascript">';
echo '<![CDATA[';
echo ' $(document).ready(function() {'; 
echo '$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?id=' .$userid. '&format=json&jsoncallback=?", function(data) {';
echo '    var target = "#flickr-images";'; 
echo '      for (i = 1 ; i <=' .$numpics .'; i = i + 1) {';  
echo '                 var pic = data.items[i];';
echo '                 var liNumber = i + 1;'; ?> 
echo '                 $(target).append("<li class=''hi-flickr-image hif-no-" + liNumber + "''><a title=''" + pic.title + "'' href=''" + pic.link + "''><img src=''" + pic.media.m + "'' /></a></li>")';
echo '       }';
echo '       });';
echo '    });';
echo ']]>';
echo '</script>';

echo '</div>';