2012-02-25 166 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'])); 
} 
?>