是否可以在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中获取网站。
答案 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它不能正常工作。
(顺便说一句:有一些非常好的方式,但我认为这不适合您的网站:))
问候 托马斯