如何包含外部网站的内容?

时间:2010-03-02 15:56:59

标签: javascript iframe external

这是一个很大的混乱......

我知道我可以使用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>

它没有打印任何内容......我假设因为跨站点限制?我迫切需要一个解决方法......任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分: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 :(得分:0)

制作服务器端 XHR请求,抓取内容,并在提供网页时将其包含在内。