IFrame中的HREF链接可更改href值

时间:2014-02-22 20:38:49

标签: javascript jquery html iframe href

是否可以在iframe中更改或附加超链接?

这是我的代码:

 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

    <script type="text/javascript">
    function changelinks(iframe){
      var as = iframe.contentDocument.getElementsByTagName('a');
      for(i=0;i<as.length;i++){
        as[i].setAttribute('href',"http://www.yahoo.com");
      }

    }

    </script>
    </head>

    <body>
    <iframe src="http://www.google.com" onload="changelinks(this)"></iframe>

我的目标是点击iframe下的任何链接,目标网址为www.yahoo.com。

欢迎提出任何建议。     更新我在不在我服务器中的iframe中获取网站。

2 个答案:

答案 0 :(得分:2)

因为你正在使用jquery。

function changelinks(iframe) {
    var frame = $( iframe ).get(0).contentDocument;

    $( 'a', frame ).click(function( event ) {
        event.preventDefault();
        location.href = 'http://yahoo.com';
    });
}

或更改元素属性:

function changelinks(iframe) {
    var frame = $( iframe ).get(0).contentDocument;

    $( 'a', frame ).each(function() {
        $(this).attr('href', 'http://yahoo.com');
    });
}

答案 1 :(得分:0)

如果iframe网址是外部网址,则会遇到注入安全问题......

请看:https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS 这意味着您只能访问域名网站上的DOM。 你可以做一些PHP“代理”黑客,你可以在那里改变href attr,但是简单的javascirpt它不能正常工作。

(顺便说一句:有一些非常好的方式,但我认为这不适合您的网站:))

问候 托马斯