Javascript 在IFrame中添加HREF链接以更改HREF值
是否可以在iframe中更改或附加超链接 这是我的密码:Javascript 在IFrame中添加HREF链接以更改HREF值,javascript,jquery,html,iframe,href,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.getElemen
<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){
var as=iframe.contentDocument.getElementsByTagName('a');
对于(i=0;i,因为您正在使用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');
});
}
如果iframe url是外部url,则会遇到注入安全问题
见此:
这意味着您只能在域站点上访问DOM。
您可以进行一些php“代理”攻击,您可以更改href attr,但使用简单的javascirpt无法工作
(顺便说一句:有一些油腻的方式,但我认为这不是你网站的选择:)
问候
Thomas这是因为iframe链接中的所有链接都指向yahoo.com吗?如果是,请参见。您不需要setAttribute
,难道不能像[i]那样执行。href='class1!'http://www.yahoo.com“
?@Wilf我还没有发布父窗口或新窗口。@TheWobbuffet“你不能像[I]那样做吗?”href=''哈哈哈,谢谢你的建议,还是没用。注意:我在iframe中获取的网站不在我的服务器上。如果你通过php代理黑客展示示例代码,我将不胜感激。你可以通过file_get_contents()获取网站html(使用uri)。现在您需要像这样替换href值:$pageHTML=preg\u replace('\\ href=\'(.*)\“\\”、“href=\.$url.\”、$pageHTML);(未测试)