jQuery:更改iFrame的图像

时间:2014-07-29 22:38:59

标签: javascript jquery html html5 iframe

我在另一个域中的anoter页面中有一个iframe。:

例如:

<iframe id="myframe" src="http://stackoverflow.com/">
</iframe>

在jQuery中,我有这个:

$(document).ready(function(){
    $("#myframe").load(function(){
        var obj = $("#myframe").contents().find('#hlogo');

        div.append('<img src="http://www.my-domain.com/img/myimage.jpg" />');
    });

});

但它没有添加图像。我该怎么办?

在这个fiddle中,我试图将图像更改为其他内容 - 同样的问题,不同来源。

2 个答案:

答案 0 :(得分:1)

如果你想改变#hlogo的src属性,你需要这样做:

var iframe = $('<iframe>', {
       id:  'pay-rent',
       }).appendTo('body');


       iframe.load(function(){
        var obj = $('#pageHeaderLogo',iframe.contents());
        console.log(obj);
        obj.attr('src', 'http://www.firstchoicehousing.com/images/logo.png');
    });

iframe.attr({
 src:"http://wemanageproperties.securecafe.com/residentservices/apartmentsforrent/userlogin.asp"
 });

http://jsfiddle.net/UYPTc/
如果iframe是不同的域,则由于Same-origin policy

,您无法访问其内容

Uncaught SecurityError:无法从'HTMLIFrameElement'中读取'contentDocument'属性:阻止具有原点“http://fiddle.jshell.net”的框架访问具有原点“http://wemanageproperties.reslisting.com”的框架。协议,域和端口必须匹配。

答案 1 :(得分:-1)

你可以使用jQuery.contents()函数

文档: http://api.jquery.com/contents/

另见 How to access the content of an iframe with jQuery?