当Object标签显示为:none时,方法失败,但是当visibility:hidden起作用时

时间:2011-07-26 15:27:12

标签: java class object

我有一个span标记作为加载Java类的object标记的父标记。 span代码的格式为display:none。在Javascript中检索对object标记的引用并调用此object标记的方法时,它会失败。

但是,如果span代码没有设置display:nonevisibility:hidden,那么它就有效。

为什么会这样?

<span style='display:none'>
  <object type="application/x-java-applet" width="100" height="100" name="my_class" id="my_class">
    <param name="codebase" value="http://www.whatever.com/class">
    <param name="code" value="myclass.class">
    <param name="mayscript" value="yes">
    <param name="scriptable" value="true">
 </object>
</span>

2 个答案:

答案 0 :(得分:3)

这是基本样式(CSS),页面中仍然包含隐藏对象,而甚至不包含display:none的元素。

解决方案:

  • 使小程序大小为10x10像素
  • 把它放在网页的一些无关紧要的部分(例如在最后)
  • 使用 visibility :hidden将其隐藏起来。请注意,这是visibility,而不是display

答案 1 :(得分:1)

拉​​里。

原因是当使用'display:none'时,浏览器呈现页面就像元素根本不存在一样。虽然您可以参考DOM中的'object'元素,但尚未创建对象本身。另一方面,'visibility:hidden'只隐藏元素,但它仍占用空间和布局。

不破坏页面布局的最佳解决方案是使您的元素绝对定位并将其放在用户视线之外的某个位置(例如左:-1000px)