触发点击iframe

时间:2014-12-20 05:05:53

标签: javascript jquery iframe

这是我的iframe HTML代码:

<ul id="titleee" >
<li><a href="http://adskpak.com/?type=2&id=jayvicious">CLick me</a></li>
</ul>

这是我的主页代码:

<iframe id="iframe" src="iframe1.php"></iframe>

<script>
$(document).ready( function(){
  $('#iframe').contents().find('#titleee').click();
});
</script>

它似乎没有触发点击事件。

2 个答案:

答案 0 :(得分:0)

我觉得这样的事情应该有用,虽然我不再做jQuery,只是vanilla Javascript。我相信你可以弄清楚如何在jQuery中做到这一点。

这是您的iframe代码:

<ul id="titleee" >
<li><a href="http://adskpak.com/?type=2&id=jayvicious">Click me</a></li>
</ul>
<script>
  window.addEventListener("message", function() {
    if (event.origin === 'http://adskpak.com') {
      if (event.data === 'click the link') {
        document.querySelector('#titleee a').click();
      }
    }
  });
</script>

现在是您的主页代码:

<iframe id="iframe" src="iframe1.php"></iframe>
<script>
  var iframeWindow = document.querySelector('#iframe').contentWindow;

  // this needs to happen after the load event,
  // but it is best if it happens on a user's action.
  window.onload = function() {
    iframeWindow.postMessage('click the link', '*');
  }
</script>

我已经测试了这段代码并且它似乎有效,但是当我进行测试时我使用了google.com,它实际上提醒我一个跨域错误:

Load denied by X-Frame-Options: https://www.google.com/ does not permit cross-origin framing.

我不确定这是否与您相关,因为看起来您在自己的域名中做了所有事情,只是抬头。

答案 1 :(得分:0)

只需检查浏览器的控制台是否有错误: -
您可能会收到此错误: -

SecurityError: Failed to read the 'contentDocument' property from 'HTMLIFrameElement': Blocked a frame with origin "http://www.goibibo.com" from accessing a cross-origin frame.

如果同时拥有父级和iframe ,这将有效。将页面和iframe的 document.domain 设置为相同的值,即您的域,然后进行检查。