2012-08-09 77 views
-1

更新:该脚本现在可以(部分)工作,但无法加载某些在其内容中具有Javascript的XML小工具文件;还有一些加载正常,但其他内容仍然没有显示。我想知道这是否只能用PHP而不是jQuery来完成。Append/Prepend/jQuery问题

我有我用来加载和显示XML小工具的代码(如来自iGoogle的代码)。它现在是我的创作,实际上我甚至不记得我从哪里得到它。

无论如何,如您所见,代码从XML文件中读取Content并将其显示在combo1范围内。这按预期工作。

问题是我写的任何东西在跨度之前或之后都没有显示。或者它显示一个分数,但立即显示内容,其他所有内容都隐藏起来。我想“我希望这个文字可见!!!”是可见的。我怎样才能做到这一点?我不在乎它是否只是文本,或者也许jQuery可以做另一个技巧来显示它(我尝试了一些,没有工作),或者也许“我的”代码有错,需要一些更改。

我所知道的是我需要帮助。

P.S.如果您需要测试这个,请使用Google的hello gadget:http://www.google.com/ig/modules/hello.xml - 您必须将其保存在本地,我认为该脚本不会读取外部文件。

OK,供大家参考,我有这样的:

<?PHP 
$xml = $_GET['xml']; 
echo "<html><head></head><body><script src='http://code.jquery.com/jquery.min.js' type='text/javascript'></script> 
     <script type='text/javascript'> 
     $(document).ready(function(){ 
    function loadfail(){ 
     alert('Error: Failed to read file!'); 
    } 
    function parse(document){ 
     $(document).find('Module').each(function(){ 
      $('.combo1').append(
      '' + $(this).find('Content').text() + 
      '' 
      ); 
     }); 
    } 
    $.ajax({ 
     url: '$xml', 
     dataType: 'xml', 
     success: parse, 
     error: loadfail 
    }); 
}); 
</script><span class='combo1'></span>"; 
?>Text that I'd like to show</body></html> 
+0

我们能否获得更多信息?可能在jsfiddle.net上设置一个例子?文本不必位于元素内部才可见。如果元素在页面上呈现,它应该显示,除非父元素被告知隐藏它。 例如,您可以在没有div的标记中直写文本,它会显示出来。我们需要知道文本是否正在被读取,如果AJAX没有正确触发,等等...... – Wesley 2012-08-09 16:51:07

+0

当然,但它不会有帮助,因为.xml文件必须与页面位于同一个域中( http://jsfiddle.net/G2sZz/)。我认为如果你使用这段代码在你的计算机上创建一个html文件,并从Google(见上面)中的同一文件夹中加载hello.xml,那么它会更好。 – 2012-08-09 16:55:32

+0

文字“我要这个文字可见!!!”确实显示了一秒钟,但在脚本加载xml文件后,它被替换为(?!)......在我头上。 – 2012-08-09 16:56:45

回答

0

好吧,我回答我自己的职位(笑),也许这线程将关闭这个样子。 上面的代码在我的第一个问题中终于有效。但是,这取决于xml文件内容。在我用数十个xml文件测试之后,我得出结论,并非所有这些文件都允许显示其他元素。对于那些在Content中包含JavaScript的xml文件,该脚本将不允许显示任何内容,仅显示xml文件的内容,而没有其他内容。 我想这些是JavaScript的限制,为了更好的结果,应该使用PHP来做我所问的。