我有一个简单的 html 页面。它有一个指向其他网站的 iframe。我想更改嵌套在该 iframe 中的锚标记的颜色。可以通过 javascript 访问 Iframe 的元素
问问题
177 次
5 回答
1
如果另一个页面在另一个域中,由于跨域安全性,将无法从主页面编辑 iframe 的 HTML 内容。
对此有解决方法,例如在 url 中写入您想要进行的更改。但这真的很脏。
如果它在同一个域中,我建议使用,例如:
$('div', $('iframe')[0].contentWindow.document)
用于获取 iframe 中的所有 div 元素
于 2012-11-29T10:35:07.360 回答
1
我通过使用以下代码做到了
函数 loadFrame(){ document.getElementById('pcl_frame').contentWindow.document.getElementsByTagName('a')[0].style.color='blue'; }于 2012-11-29T11:00:49.690 回答
0
你需要 JavaScript。这与在父页面中执行此操作相同,只是您必须在 JavaScript 命令前加上 iframe 的名称。
请记住,相同的来源策略适用,因此您只能对来自您自己的服务器的 iframe 执行此操作。
frame1.$('mydiv').style.border='1px solid #000000'
或者
frame1.$('mydiv').addClassName('withborder')
于 2012-11-29T10:37:10.740 回答
0
您可以使用 iframe 获取元素的值
$('#iframeId').contents().find('#id-of-element-inside-iframe');
但是值不能改变。
于 2012-11-29T10:37:15.333 回答
0
只有一个简单的解决方案,它仅在您拥有 iframe 中的内容时才有效。
在您的父源中添加:
<script type="text/javascript">
var innerDocument = null;
</script>
在您的 iframe 中添加:
<script type="text/javascript">
parent.innerDocument = document;
</script>
加载 iframe 后,您现在可以使用 innerDocument 定位 iframe 的文档。这绕过了跨域安全。
于 2012-11-29T10:39:27.197 回答