假设我想将我最喜欢的一个webcomics的最新漫画嵌入我的网站作为一种促销。 webcomic在带有id的div里面有条带,所以我想我可以在我的网站中嵌入div,除了我找不到任何代码示例如何做(它们都显示如何嵌入flash或整个网站)。 有人可以告诉我(或告诉我)它是如何完成的吗?
PS我宁愿不使用服务器端脚本或外部服务(这是通常建议用于嵌入RSS)。
答案 0 :(得分:12)
昨天我正在浏览James Padolsey的博客,在那里他发表了一篇很棒的文章,关于如何用jQuery做cross domain request,还有Chris Heilmann有一个很好的DEMO。
原则是使用YQL - >用于网页查询的yahoo api,您可以在其中收到包含所有html的JSON。快乐的刮痧:)
如果考虑简单的 AJAX 调用,会拦截漫画元素,并使用主要用于此目的<div id="update-comic" />
的内容进行更新?
此外,您将使用简单的 php 来获取远程页面,因为您无法在其他域上进行ajax调用
注意:用户必须启用JavaScript,代码使用jQuery库
在您的页面上,您只想为此目的显示远程漫画创建 div ,我们可以将其称为update-comic
<div id="update-comic">
<!-- here comes scraped content -->
</div>
写下 php ,称之为comic-scrape.php
,它会从远程页面下载html ,你应该考虑缓存响应并在指定的时间间隔内更新(例如30分钟,1小时,您的电话...... :))
服务器性能不会受到影响
<?php
$url = 'http://www.example.com/';
$response = file_get_contents($url);
echo $response;
现在出现了 jQuery 魔术,你可以在你的php刮刀上进行ajax调用,只选择你感兴趣的相关元素。将此脚本放在视图页面< / strong>(您有<div id="update-comic" />
<script type="text/javascript">
$(function () {
// set all your required variables
var
localUrl = '/comic-scrape.php',
elementId = '#remote-comic-id',
elementToUpdate = $('#update-comic');
// update the local elementToUpdate with elementId contents
// from your php in localUrl
elementToUpdate.load(localUrl + ' ' + elementId;
});
</script>
我希望,我涵盖了一切。
正如philfreo在评论中建议的那样,可行的解决方案还可以包含选择所需的id服务器端。使用php的simplexml和一个小的xpath非常容易:
<?php
// set remote url and div id to be found
$elementId = 'remote-comic-id';
$url = 'http://www.example.com/';
// instantiate simple xml element and populate from $url
$xml = new SimpleXMLElement($url, null, true);
// find required div by id
$result = $xml->xpath("//div[id={$elementId}]");
// take first element from array, which is our desired div
$div = array_pop($result);
echo $div;
答案 1 :(得分:1)
这是不可能的,因为你无法操纵iframe / frame内容。使用iframe标签只会修改标签中的内容,但不会修改src。 既不是AJAX,也不是因为你必须在同一个域上。
因此,例如,您可以将PHP与cURL一起使用,或者仅使用fopen。
答案 2 :(得分:-1)
您可以使用iframe
。内容不是字面上的页面,但它看起来像。
以下是一个示例:http://www.w3schools.com/TAGS/tryit.asp?filename=tryhtml_iframe
看起来像这样:
<iframe src ="http://www.example.com/index.html" width="100%" height="300"></iframe>
答案 3 :(得分:-2)
&lt; embed src =“你的漫画的网址”width =“300”height =“250”/&gt;