我想通过使用javascript访问iframe来隐藏一些内容,所以我编写了这个javascript函数。
function changeCSS(){
frame = document.getElementById('frame1');
frame.contentWindow.document.getElementById('GlobalTitleAreaImage').style.display='none';
}
我在加载iframe时调用了该函数(onload = javascript:changecss())
一切似乎在IE中运行良好但在Safari中它不起作用。任何想法为什么它以这种方式表现以及我应该如何解决这个问题。
由于
答案 0 :(得分:1)
请注意,Javascript本身的框架和位置必须位于同一个域上才能生效。如果两者都来自文件协议,Safari和IE可能会以不同的方式处理它。
对于那些不在同一个域中的人,请查看cross-domain communication with iframes和潜在的HTML 5解决方案,并使用库和&amp ;;的回退方法很好地包装。插件,例如porthole,xssinterface,easyxdm等。
虽然Safari被列为支持内容窗口,但Chrome不是。对于跨浏览器兼容性,请使用contentWindow和contentDocument的组合以确保您获得支持的属性。所以试试:
function changeCSS(){
var frame = document.getElementById('frame1');
var content = frame.contentWindow || frame.contentDocument;
content.document.getElementById('GlobalTitleAreaImage').style.display='none';
}
答案 1 :(得分:0)
如果iframe不在同一个域中,那么出于安全原因,不允许您这样做。