2013-06-04 36 views
5

如果用户点击图片,我希望同时触发点击指定的iFrame。那可能吗?图像和iFrame位于同一页面上。如果是这样,你能告诉我可以工作的代码吗?jQuery触发一个iFrame的点击?

这是我到目前为止有:

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
</head> 
<body> 
<img id="image" src="https://www.google.com/images/srpr/logo4w.png"> 

<iframe id="iframe" src="http://www.test.com" height= "100" width="160"></iframe> 

<script> 
jQuery("input.image").click(function(){ 
    $("#iframe").click() 
}); 
</script> 

</body> 
</html> 
+2

它的更好,你尽力去做,然后如果你发现一个问题后代码解决它在一起:) – Somar

+1

好吧,我刚刚更新了我的原始问题与我到目前为止的代码。 – user2453693

回答

6

你jQuery的图像选择是错误的。

变化

jQuery("input.image") 

$("#image") 

那么一切都将正常工作。你可以看到它在这个fiddle

帖子编辑

如果问题是触发包含在iFrame中的一个元素点击,然后用类似更换

$("#iframe").click() 

$("#iframe").contents().find("a:first").click(); 

这如果主网页的内容和iframe的页面都只会工作在同一个域上。否则,浏览器会阻止该操作,因为它是跨站点脚本。你可以在你的例子看,XSS预防发生在this fiddle

+0

这工作,有点。即使我看到“iframe点击”的警报,但实际上并没有单击iFrame,因为实际iFrame内的内容(如果它真的被点击了)会打开另一个窗口,但这并没有发生。 – user2453693

+0

您的问题要求触发点击iFrame。那就是我的例子中发生的事情。我认为您有兴趣触发点击位于iFrame内的内容元素? – dcarson

+0

@ dcarson - 是的,这是正确的;对不起,我不清楚。我需要它点击iFrame内的内容。具体来说,iFrame内容中有一个链接,我需要它点击。以下是实际的iFrame内容的副本。您可以看到我需要点击的链接,它是iFrame内容中的唯一链接。 http://pastebin.com/cXsuq71P – user2453693

1

证明我想你需要的是这样的: -

$("#image").click(function(){ 
    var $iframe = $("#iframe").contents(); 
    $("body", $iframe).trigger("click"); 
}); 
+0

我试过这个,当我点击图片时,iFrame没有任何反应。iFrame的内容也是图像,但iFrame中的图像是超链接。所以当我点击图片时,它也会触发点击iFrame,这会打开一个新页面,因为iFrame中的图像是一个链接。 – user2453693

+0

请检查。我添加了新的答案。 – pvnarula