2011-06-22 101 views
0

我想要爲來自外部文本文件的圖像提供Javascript函數加載信息,並將圖像顯示在我的WordPress網站上。我在網上找到一些代碼來加載和解析外部文本文件。從外部txt文件加載圖像信息並顯示在html文件中

我還沒有成功地讓它工作。

我建立了一個單獨的html測試頁面,但這也不起作用。

我試圖讓網站載荷的js文件,輸出的圖像,在MMUSIC DIV使用此代碼:

document.write('<a href="' + AdLinkPath[0] + '" target="_blank"><img src="' + AdFilePath[0] + '" width="' + AdWidth[0] + '" height="' + AdHeight[0] + '"/></a>'); 

我試圖在test.html文件放在同一個代碼,我一直沒有能夠得到它的工作。

有人可以告訴我我做錯了什麼嗎?

謝謝!

回答

1

document.write語句在收到AJAX響應之前發生。如果您在四條return聲明後直接移動該聲明,它應該可以解決您的問題。

+0

哎呀 - 我曾試圖增加在回行,但似乎並沒有幫助,我不小心留下他們在那裏。 即使這樣做,我仍然需要使用js函數和document.write函數分別在主站點上工作...... – IsaacL

+0

@IsaacL - 您的document.write **必須從您的onreadystatechange函數中的某處調用,否則它將始終發生在收到響應之前。如果你希望你可以將document.write部分包裝在一個函數中,並在onreadystatechange結尾調用該函數。你如何實現它並不重要,這就是必須要做的事情。 – musicinmyhead

+0

而不是使用document.write,使用'document.getElementById('adContainer')。innerHTML ='string';' - 然後在主站點中確保無論DIV(或放置廣告的其他元素)一個「adContainer」的ID。然後更新'string'部分作爲document.write的內容。 – musicinmyhead

2

我不確定你的具體問題是什麼,但肯定有很多事情可以做,以改善整體設計。

首先,你確定這甚至是你想在Javascript中做的事情嗎?您似乎正在修改服務器上的文本文件,以告知您的頁面要投放的廣告。沒關係,但是如果你有選擇的話,最好做這個服務器端。在您使用PHP或類似語言(如果有權訪問的話)將HTML發送回用戶瀏覽器之前,請在圖像中包含適當的URL。這可以消除代碼中的複雜性,提高網頁加載速度,即使沒有適當的Javascript支持也能正確顯示您的廣告。

如果你打算用AJAX做這件事,那麼我強烈建議使用JSON格式的數據和某種類型的庫來處理你的請求。解析文本文件會帶來很多問題,並將數據格式化爲JSON,從而爲您提供將其轉換爲Javascript對象的便宜方法。 jQuery是這樣做的一個流行的選擇:http://api.jquery.com/jQuery.getJSON/

你可以設置文件格式更像:

{ 
    "img": "http://myhost/img/mm.jpg" 
    "link": "http://myhost/" 
    "width": "192" 
    "height": "108" 
} 

然後,你需要做這樣的事情在網頁上更新的像場:

$.getJSON("test.js", function(json) { 
    $.each(json, function(key, value) { 
     //parse the keys and values appropriately in here 
    }); 
}); 

你也可能不想使用document.write。這會覆蓋整個頁面的內容。您可能想要以某種方式選擇您的圖像元素,然後更改其屬性。你可以使用這個jQuery選擇器。一旦您選擇了img元素,請參閱操縱部分以瞭解如何修改img元素。

http://api.jquery.com/category/selectors/

http://api.jquery.com/category/manipulation/

+0

感謝您的回覆。我希望能夠從外部文件加載圖像信息,甚至可以在外部網站上加載。我可能可以做到這一點在PHP中,但我不知道該怎麼做... 而我不知道多少AJAX/jQuery,所以我不知道我會怎麼做.. 任何建議是歡迎雖然;) – IsaacL

+0

你已經在使用AJAX。您使用XMLHttpRequest()異步請求數據。我建議jQuery只是因爲我認爲它會更容易。 – jncraton

+0

我很喜歡使用jQuery,但我不知道如何解決這個問題,現在它正在與AJAX協同工作(我的意思是我不知道很多AJAX,我只是從我在網上找到的片段中拼湊出一些東西)。 如果有人願意給我的代碼,讓它與jQuery的工作,我會用,但我不知道足夠的工作...... – IsaacL

相關問題