如何将URL调用的HTML结果附加到DOM中

How to append the HTML results of a URL call to the DOM?

本文关键字:DOM 结果 HTML URL 调用      更新时间:2023-09-26

我有一个位于另一个域上的URL,如下所示:

http://ads.adserver.com/ad?site=1233&zone=45435

当你在浏览器中键入这个URL时,结果是这样的HTML:

<a href="http://www.google.com" target=""><img src="htt://ads.adserver.com/i/image.gif" border="0"/></a><br/><a href="http://ads.adserver.com/redir/12313" target="">Test</a>

上面的渲染为一个图像包裹在一个链接下面的第二个链接

我试图在脚本标记中捕获这个URL,并将其附加到DOM中,但它没有呈现上面的HTML。

var ad_script = document.createElement('script');
ad_script.type = 'text/javascript';
ad_script.src = 'http://ads.adserver.com/ad?site=1233&zone=45435';
li.appendChild(ad_script);

有没有其他方法可以调用这个URL并将结果放在页面上?我不能使用$.getScript(),因为我没有在全局上下文中调用它。我需要这个HTML正好出现在我希望它出现的地方。

编辑:我尝试这种途径的唯一原因是第三方没有提供JSON-p接口。

编辑2:很遗憾,我不在应用程序服务器上。

第三版:这是给iPhone的。

由于跨域问题,您的加载方式受到限制。。一个简单的方法是将图像加载到它自己的iframe 中

<iframe src='http://ads.adserver.com/ad?site=1233&zone=45435' height='200px' width='200px' />

您需要使用ajax来实现这一点。最简单的方法可能是jQuery的.load()方法。

假设您希望内容进入的元素的id为holder,那么您将执行

('#holder').load('http://ads.adserver.com/ad?site=1233&zone=45435')

它会将网页的内容放入您选择的元素中。http://api.jquery.com/load/

edit:对不起,忘记了跨站点ajax的限制。您可以设置一个php页面,如:

if(isset($_GET['url'])){
    echo file_get_contents($_GET['url'])
}

然后做

('#holder').load('http://yoursite.com/yourpage.php?url=http://ads.adserver.com/ad?site=1233&zone=45435')

采用jsonp方法。使用一个实际的script标记,并放置一个正在执行的javascript函数作为将该html标记添加到dom的响应。它将把它添加到脚本标记所在页面的dom中。

有许多jQuery ajax调用可以实现这一点,例如:jQuery.get('http://ads.adserver.com/ad?site=1233&zone=45435',函数(数据){jQuery(updateElementQuery).html(数据);});

尝试使用jquery方法"加载"

`$('#result').load(url, function(response) {
   $('#my-li').append($('#result').html());
   $('#result').html(null);
});`

其中#result是一些隐藏的div