我正在尝试在我的网页上显示来自其他网站的图片拼贴。如果我知道直接链接,它工作正常,因为我可以设置img src。但是,如果我只知道页面的名称,那个页面上的图像的id可以通过一些jQuery调用来检索src。
这样的东西,但在另一页上调用:
var imageSource = $("#pictureid").attr("src");
答案 0 :(得分:0)
客户端javascript不是为此而设计的。你想做什么屏幕刮刮。你可以通过多种方式实现这一目标,最简单的方法是雅虎的YQL以及使用Node.JS,PHP或首选服务器语言的其他方式。
答案 1 :(得分:0)
不,如果您希望在网站上添加图片,则需要提供相应的网址。
答案 2 :(得分:0)
您想要的是对其他网站进行AJAX调用以引入HTML,然后查看该内容以查找您感兴趣的src
标记的img
属性。所有现代浏览器都有某种同源策略,但禁止这样做 - 你不能对当前文档域之外的任何东西进行AJAX调用(也就是说,在example.org页面上运行的脚本不能对foobar进行AJAX调用。 COM)。
这意味着您必须采用服务器端技术:在您选择的服务器端语言中,从外部页面加载HTML(大多数环境都绑定到libcurl,设计用于完成此操作)和然后解析它以找到图像。获得URL后,您可以轻松地将其插入动态HTML中。
也就是说,未经许可深层链接图像会违反网络礼节,甚至可能是非法的,这取决于您所在的司法辖区(您滥用其他人的服务器为您的访问者提供带宽,毕竟,在某些司法管辖区内可能属于非法黑客定义的东西);最好的办法是将图像本身拉入并在您自己的服务器上托管一份副本,这样您就可以使用自己的带宽来提供服务。当然,请尊重您使用的图像的版权和许可条款(如果有的话)。
答案 3 :(得分:0)
尝试这样的事情:
首先,我们需要一个简短的服务器端脚本来反弹我们的请求,因为AJAX受到相同原始策略的阻碍。这是PHP中的一些东西:
<?php if (isset($_GET['url'])) readfile($_GET['url']); ?>
我们说这是保存在get.php
。要使用它,我们只需使用我们想要获取的页面的url设置查询字符串的url字段。该脚本从该页面获取所有HTML并输出它。例如,get.php?url=http://stackoverflow.com/
将获取stackoverfllow的索引页中的所有HTML。
接下来,让我们编写一些jQuery来检索url上指定图片的src。像这样:
var url = 'http://www.pics.com/';
var selector = '#pic8';
$.get('get.php', { url: url }, function(htmlResponse) {
var pic = $(htmlResponse).find(selector);
alert(pic.attr('src');
}, 'html');
这应该有效。