在iframe中打开的网页上调用我的jquery函数

我想点击基于我父页面中的类选择器在iframe中打开的网页上的按钮。

我试过这个

$.each($('.classname'), function(i, el){ setTimeout(function(){ $(el).trigger('click'); },30000 + ( i * 30000 )); }); 

但没有成功。 我怎样才能做到这一点?

如果iframe的src指向不同的域,由于安全原因,您将无法在javascript中访问iframe的内容。

如果iframe的源位于与父页面不同的域(甚至子域)中,则您将无法更改嵌入式iframe中的父内容。 Web浏览器默认阻止此function。

假设您在iframe中打开的页面来自您自己的域,您希望contentDocument访问iframe中的元素。 如前所述,如果您尝试加载不在您的域上的外部页面,由于安全问题,您的浏览器将不允许这样做。

如何在Javascript中获取iframe的正文内容?

第二个答案: jQuery / JavaScript:访问iframe的内容

https://www.w3schools.com/jsref/prop_frame_contentdocument.asp

由于这个原因,同源策略不可能以你想要的方式实现。 这基本上意味着您无法编辑iframe中的数据,除非该页面具有相同的端口和域,您无法获取数据用于安全目的(浏览器不允许您这样做)…. 。

我需要更多信息来帮助您找到解决问题的不同方法…… 🙂

正如大家所建议的那样,由于安全原因,浏览器不会允许你这样做。但是有使用浏览器window

从您的页面:

 window.postMessage({action: 'clickOnIframeButton',selector:$el},'*'); 

在你的iframe中:

  window.addEventListener('clickOnIframeButton', function clickButton(e,data){ $(data.selector).click(); }); 

所以你可以做点什么,

 $.each($('.classname'), function(i, el){ setTimeout(function(){ window.postMessage({action: 'clickOnIframeButton',selector:$el}'*'); },30000 + ( i * 30000 )); });