[英]document.getelementbyid not working
我想通过使用javascript访问iframe来隐藏一些东西,所以我写了这个javascript函数。
function changeCSS(){
frame = document.getElementById('frame1');
frame.contentWindow.document.getElementById('GlobalTitleAreaImage').style.display='none';
}
然后,当我加载iframe时调用了该函数(onload = javascript:changecss())
一切似乎在IE中都可以正常工作,但在Safari中却无法正常工作。 任何想法为什么它会以这种方式以及我应该如何解决。
谢谢
请注意,Javascript本身的框架和位置都必须位于同一域中,这样才能起作用。 如果Safari和IE均来自文件协议,则它们的处理方式也可能不同。
对于不在同一域中的应用程序,请查看与iframe和潜在HTML 5解决方案的跨域通信,并通过库和插件(如porthole , xssinterface , easyxdm等)的后备方法很好地包装了它们 。
虽然Safari被列为支持内容的Window,但Chrome没有。 为了实现跨浏览器的兼容性,请结合使用contentWindow和contentDocument来确保您点击了受支持的属性。 因此,请尝试:
function changeCSS(){
var frame = document.getElementById('frame1');
var content = frame.contentWindow || frame.contentDocument;
content.document.getElementById('GlobalTitleAreaImage').style.display='none';
}
如果iframe不在同一个域中,则出于安全原因,您不允许这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.