2012-08-09 57 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來做我所問的。