我想访问iFrame中的元素,但由于调用iFrame的方式,我没有成功。
This is the target page (www1.k9webprotection.com/...).
iframe位于不同的子域名中:
<iframe src="http://license.k9webprotection.com/..." ...></iframe>
为iframe加载时设置超时或事件监听器没有帮助。
答案 0 :(得分:1)
两个文档都放在不同的(子)域上,默认情况下它们无法通过javascript进行交互。
您必须将两个文档的domain
设置为相同的值。
将它放在两页的<head/>
中:
<script type="text/javascript">
document.domain='k9webprotection.com'
</script>
...然后等待iframe的onload
- 事件,您应该能够从父页面访问iframe内的文档(反之亦然)。
GreaseMonkey的Sample-Script(只是覆盖iframe的主体):
// ==UserScript==
// @name k9
// @namespace k9
// @include http://www1.k9webprotection.com/get-k9-web-protection-free
// @include http://license.k9webprotection.com/license.jsp*
// @version 1
// @grant none
// ==/UserScript==
document.domain= 'k9webprotection.com';
if(self===top){
try{
$('iframe.getk9iframe').load(function(){
$('body',this.contentDocument)
.text('gotcha')
.css({background:'red',fontSize:'3em'});
});
alert("I'm the document in the top-window");
}
catch(e){}
}