2012-02-25 173 views
0

我是javascript和jquery的新手。我嘗試在本地測試我的html。我可以正確使用代碼如下。jquery加載外部文本

<html> 
<head> 
<script type="text/javascript" src="js/jquery-1.7.1.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    $("button").click(function(){ 
    $("div").load('test1.txt'); 
    }); 
}); 

</script> 
</head> 
<body> 

<div><h2>Let AJAX change this text</h2></div> 
<button>Change Content</button> 

</body> 
</html> 

但是,當我把文本「http://www.w3schools.com/jquery/test1.txt」而不是「test1.txt的」,該按鈕無法正常工作。請幫忙。

問候,

湯米

回答

2

你不允許做跨瀏覽器的AJAX。

使用上面的代碼,如果目標代碼文件和代碼文件都在本地,則可以從同一個域或僅從本地加載文件。

你應該與服務器端語言的幫助做到這一點,像你javascript通信像test.phptest.aspx一些自己的服務器上的文件,而服務器端的文件可以與外部網站中PHP進行通信,就像CUrl

雖然你仍然可以做一些跨瀏覽器的腳本和數據加載,如下所示 - >How do I include a JavaScript file in another JavaScript file?

,但它需要一些專門的黑客。

+0

如果我真的需要跨查詢,我該怎麼辦?謝謝。 – 2012-02-25 08:28:13

+0

你應該在服務器端語言的幫助下做到這一點,比如你的javascript通信一些自己的服務器文件,如test.php或test.aspx,並且該服務器端文件可以與外部網站進行通信,例如PHP中的CUrl。 – linuxeasy 2012-02-25 08:29:49

+0

謝謝你的幫助linuxeasy。 – 2012-02-25 08:32:03

0

如果它是另一個域中的外部文件,請嘗試以下操作:

//你的JS,顯示外部文件的內容

<script type="text/javascript"> 
$(document).ready(function(){ 
    $("button").click(function(){ 
    var url='http://www.w3schools.com/jquery/test1.txt'; 
    $.get('myphppage.php',{url:url},function(data) { 
     $('div').html(data); 
    }); 
    }); 
}); 
</script> 

// myphpage.php腳本

<?php 
if(isset($_GET['url'])) { 
    header("Content-type: text/plain"); 
    echo file_get_contents(urldecode($_GET['url'])); 
} 
?>