如何阻止所谓的隐形javascript占用空间?

时间:2011-07-23 15:12:54

标签: javascript html embed

我不是很擅长编程,但我做了一些研究,发现这个小串的javascript让点击每个javascript链接按钮立即在页面上播放声音:

<embed src=reset.wav autostart=false width=0 height=0 id=sound7 enablejavascript=true>

问题是,当我在其中几行中定义不同的声音时,它们开始占用页面上的空间。我已经将它们全部移动到代码的最底部,在div结束之后结束所有主要内容并且在正文关闭之前(见下文)。通过这种方式,它们不会弄乱元素的位置,但仍然会导致空白空间低于其他所有因素,因为它会使滚动条显得不必要。

</div>
<embed src=reset.wav autostart=false width=0 height=0 id=sound7 enablejavascript=true>
<embed src=reset2.wav autostart=false width=0 height=0 id=sound8 enablejavascript=true>
</body>
</html>

我已经看到了一些关于如何不使用visibility = hidden和使用display = none的答案,但我不知道如何将这些应用于这段代码,因为我是新手。我需要更改此字符串的哪些部分需要更改或添加代码的其他部分的示例。

------------------ UPDATE ---------------------------- -------

由于某些原因,Microsoft Word(是的,我承认这就是我正在使用的)不允许我在这些嵌入周围插入任何样式或div来应用'display:none'。可能我只是对我正在做的事情不太了解,但即使我使用以下代码成功地对每个嵌入应用'display:none',即使空白空间被有效删除,声音也会停止播放:

<embed style='display:none' src=reset.wav ....>

然后我意识到了另一种解决方案。我在这个页面上堆叠了许多元素,并认为如果不可见的声音代码条目占用空间,它们可以只重叠元素,以便不会移动或添加任何内容,因为它们没有视觉方面,所以它们不会覆盖任何东西。我研究了重叠是如何工作的并应用了它,它正在工作!

<embed style='position:absolute;z-index:1' src=reset.wav autostart=true
width=0 height=0 id=sound1 enablejavascript=true>

2 个答案:

答案 0 :(得分:0)

要明确的是,您发布的内容是HTML,而不是JavaScript。这不是管理页面中声音的最佳方法,但是,假设您要保留此方法:

如果它们被显示或导致布局问题,最简单的方法是将它们包装在display:none的div中。

<div style="display:none;">
    <embed...>
    <embed...>
    <embed...>
</div>

'更清洁'的方法是为所有这些嵌入添加一个公共类,然后为它们设置一个通用的CSS规则:

<embed class="mysounds" ... >

<style>
     embed.mysounds { display:none; }
</style>

答案 1 :(得分:0)

如果您正在谈论页面上的物理屏幕空间,那么您可以将它们放入div中,并强制它实际上很小:

<div id="sounds" style="display: none;">
<embed src=reset.wav autostart=false width=0 height=0 id=sound7 enablejavascript=true>
<embed src=reset2.wav autostart=false width=0 height=0 id=sound8 enablejavascript=true>
</div>

如果出于某种原因无法正常工作(如果隐藏了一些像Adobe Flash这样的东西就不会加载),那么你可以试着让每个像这样小的东西:

<div id="sounds">
<embed style="height: 1px" src=reset.wav autostart=false width=0 height=0 id=sound7 enablejavascript=true>
<embed style="height: 1px" src=reset2.wav autostart=false width=0 height=0 id=sound8 enablejavascript=true>
</div>