2010-03-02 56 views
0

这是一个伟大的大混乱...如何包含来自外部网站的内容?

我知道我可以使用iframe,但问题是,有一些跨站点的限制,结束了我想要做的事情。即,源内容是允许滚动的固定高度div,但没有滚动条。如果我将它加载到iframe中,它不会有相同的效果。它要么坚持有一个滚动条,要么根本不滚动。我一直在试图找到一种解决方法,但目标服务器没有PHP可用,所以我平坦坚持如何做到这一点...

在源服务器上,我试着写的所有内容到PHP变量是这样的:

<script type="text/javascript"> 
var mycontent = '<?php print $content; ?>'; 
</script> 

,然后调用该变量在我的test.js文件,当我使用提醒,我得到的文本(也源服务器上) ,像这样:

var content = mycontent; 
alert(content); 

它的工作,但不是从第目标服务器。因此,在目标服务器上,如果我使用:

<script src="http://mysite.com/test.js"></script> 

,并尝试使用:

<script type="text/javascript">document.write('content');</script> 

它不会打印出任何东西了...我假设,因为跨站点的限制?我迫切需要一个解决方法......任何人都可以帮忙吗?

回答

0

制作一个服务器端 XHR请求,抓取内容并在您的页面投放时包含它。

0

它应该是非常清楚可能做

<script type="text/javascript" src="http://mysite.com/test.js"></script> 

,并在JavaScript中,没有<script type....,做

document.write('blah'); 
document.write('blah'); 
document.write('blah'); 
document.write('blah'); 
document.write('blah'); 

这将正常工作跨域。我认为你的问题是你将<script>标签嵌入到js文件中,这是错误的。这些东西会在Firefox的错误控制台中作为语法错误弹出,这是开发JavaScript时非常宝贵的工具。

这种方法的缺点是:如果服务JS的目标服务器关闭,则嵌入脚本的文档呈现将会延迟。

+1

不同之处在于,您可能需要“内容”变量,而不是“内容”文字字符串。 – nickf 2010-03-02 16:00:14

+0

js没有