2011-05-22 79 views
5

我有Shoutcast輸出爲HTML文件的信息。HTML/Javascript - 從在線文件獲取文本

該html文件看起來像這樣:http://216.118.106.247:443/7.html

是否有任何方式獲取該列表/數組中的最後一項作爲字符串的JavaScript?

我要輸出的HTML文件中的歌曲信息,我認爲,一旦我進入它JS作爲一個字符串,我可以使用document.write()函數輸出的代碼...

謝謝!

+0

你有安裝PHP嗎?你可以使用PHP,更容易。 – 2011-05-22 04:46:01

+0

在服務器端抓取文件的缺點,我不相信你可以通過JavaScript處理你自己的域以外的任何東西的內容(除非當然有一個Web服務提供你需要的數據,你可以調用在你的代碼中)。 – 2011-05-22 04:50:30

+0

將此作爲Google Chrome瀏覽器擴展程序的一部分使用,因此我無法使用PHP ... – IsaacL 2011-05-22 04:52:11

回答

1

看看XMLHttpRequest aka Ajax請求。

有許多庫使「Ajax」變得簡單。試試這個:

http://www.prototypejs.org/api/ajax/request

有你可以使用AJAX檢索哪些限制。由於安全問題,您的瀏覽器不會讓yourwebsite.com上運行的JavaScript對mywebsite.com執行Ajax請求。

查找跨站點腳本。

1

有幾種方法供您使用。但請確保文件位於相同的服務器或文件夾中。

使用XMLHttpRequest的:http://www.javascripter.net/faq/xmlhttpr.htm

使用FileSystemObject的:http://msdn.microsoft.com/en-us/library/czxefwt8(v=VS.85).aspx

使用一個 「助手」 Java小程序讀取您的腳本

var fileContent=''; 
var theLocation=''; 

function readFileViaApplet(n) { 
document.f1.t1.value='Reading in progress...'; 
document.ReadURL.readFile(theLocation); 
setTimeout("showFileContent()",100); 
} 

function showFileContent() { 
if (document.ReadURL.finished==0) { 
    setTimeout("showFileContent()",100); 
    return; 
} 
fileContent=document.ReadURL.fileContent; 
document.form1.textarea1.value=fileContent; 
} 

一些其他來源的參考文件或URL:http://www.c-point.com/JavaScript/articles/file_access_with_JavaScript.htm (很多例子)。

+0

如果文件位於另一臺服務器上,此項工作是否可行? 我該如何將這個添加到我的html文件中? – IsaacL 2011-05-22 04:58:37

+0

Javascript不能在服務器端進行交互:)所以你必須使用PHP來代替。它只適用於同一服務器或文件夾中的文件。 – 2011-05-22 05:00:02

+0

試圖讓Google Chrome擴展程序能夠正常工作,所以我不確定這是否完全可能... – IsaacL 2011-05-22 05:01:57

5

如果你看http://code.google.com/chrome/extensions/xhr.html,你需要設置跨源請求,然後你應該能夠使用XMLHttpRequest來獲取數據。

編輯:

var xhr = new XMLHttpRequest(); 
xhr.onreadystatechange = process; 
xhr.open("GET", "http://216.118.106.247:443/7.html", true); 
xhr.send(); 

function process() 
{ 
    if (xhr.readyState == 4) { 
    var resp = JSON.parse(xhr.responseText); 

    // resp now has the text and you can process it. 
alert(resp); 
    } 
} 
+0

感謝您的反響。 你能幫我把上面的代碼放在哪裏 - 在