Когда тег Object отображается: none, метод завершается ошибкой, но когда видимость: hidden работает - PullRequest
0 голосов
/ 26 июля 2011

У меня есть тег span в качестве родителя для тега object, который загружает класс Java. Тег span имеет стиль display:none. Когда в Javascript извлекается ссылка на тег object и вызывается метод этого тега object, происходит сбой.

Но если тег span не имеет display:none, установленного ИЛИ visibility: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 ]

3 голосов
/ 26 июля 2011

Это основные стили (CSS), скрытый объект все еще включен в страницу, в то время как элемент с display:none даже не включен.

Решение:

  • Создайте апплет размером 10x10 пикселей
  • Поместите его в какую-нибудь безобидную часть веб-страницы (например, в конце)
  • Используйте visibility:hidden, чтобы скрыть его от глаз. Обратите внимание, что visibility, а не display!
1 голос
/ 26 июля 2011

Ларри.

Причина в том, что при использовании «display: none» браузер отображает страницу так, как если бы элемента вообще не было. Хотя вы можете получить ссылку на элемент object в DOM, но сам объект еще не создан. С другой стороны, «видимость: скрытый» скрывает только элемент, но он все еще занимает пространство и макет.

Лучшее решение, чтобы не нарушать макет страницы, это сделать ваш элемент абсолютно позиционированным и поместить его в какое-то место вне поля зрения пользователя (например, слева: -1000px)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...