将全能的CDATA标记添加到一些PHP回显的jQuery中

时间:2011-07-09 03:01:58

标签: php javascript wordpress plugins cdata

在这个问题的底部附带了一些代码,这些代码在基于PHP的Wordpress插件中得到了回应。我需要找出一种方法来确保这个javascript包含在CDATA中,因为它干扰了RSS feed生成器。任何帮助将不胜感激,我已经尝试了几种方式,但它并没有真正正常工作。除了RSS feed问题之外,插件的一切都很好用:/谢谢!!

        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>';

2 个答案:

答案 0 :(得分:1)

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

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>';

答案 1 :(得分:0)

感谢您的帮助。我想到了。

我最初回应的CDATA就像你们所建议的那样正在注册。

但是在插件PHP文件的底部,我在结束?>后有几个空格,而 导致了RSS错误。

对此感到抱歉。