11.4 隐藏/恢复显示问题
11.4.1 隐藏/恢复显示的js
假如页面的插件为:
<div id="div1" style="position:relative;width:96%;height:400px">
<script>insertReport('AF', '')</script>
</div>
js 操纵插件, 让其隐藏/恢复显示, 通常有 2 种书写方法:
var dv = document.getElementById("div1");
dv.style.display = 'block'; //隐藏
dv.style.display = 'none'; //显示
//对应到 jquery 是:
$("#div1").hide(); //隐藏
$("#div1").show(); //显示
var dv = document.getElementById("div1");
dv.style.visibility = 'hidden'; //隐藏
dv.style.visibility = 'visible'; //显示
//对应到 jquery 是:
$("#div1").css('visibility','hidden'); //隐藏
$("#div1").css('visibility','visible'); //显示
11.4.2 IE浏览器
在 IE 浏览器中, 上述 2 种方法的表现都能和你预期的完全一致, div 作为容器, 隐藏/显示动作直接影响到插件。11.4.3 npapi 插件
在国产浏览器的极速模式、Firefox浏览器、以及老版本的 Chrome 浏览器中,硕正插件是以 npapi 协议和浏览器内核交互的, npapi 模式的隐藏/显示和 IE 有所不同, 结论为:11.4.4 ppapi 插件
目前主流版本的 Chrome 浏览器, 和硕正插件之间是以 ppapi 协议交互的, ppapi 模式的隐藏/显示和 上述浏览器也有所不同, 结论为:
$("#div1").css('visibility','hidden'); //div隐藏
AF.func("GrayWindow", "true"); //控件隐藏
全局函数 GrayWindow 本来是用于隐藏插件、让 div 呈现半透明效果的, 但此时 div 已经隐藏, 所以也没什么半透明效果了, 其整体效果就是插件隐藏.
$("#div1").css('visibility','visible'); //div隐藏
AF.func("GrayWindow", ""); //控件恢复显示