现在需要在网页上显示一个播放影视文件的ActiveX控件,但是我并不想页面刚加载便显示此控件,而是在缓冲完成后才显示此控件,缓冲完成之前在本该显示控件的地方显示一个广告。

我尝试了两种方法,都没有成功。第一种是使用两个层,一个放广告,一个放控件,使用display='none'和display=''来实现页面初次加载时显示广告层,点击播放按钮并缓冲完成后显示控件层。但是我发现如果设置display='none',则控件并没有加载,所以点击播放按钮时调用其函数不成功。此方法未能实现。

第二种方式如下:


<
html
>


<
head
>



<
script
language
="JavaScript"
type
="text/JavaScript"
>



<!--


function
load()



{

document.all['Layer1'].style.display

=
'none';

document.getElementById('Layer2').style.left

=
'11px';

document.getElementById('Layer2').style.top

=
'16px';

document.getElementById('Layer2').style.width

=
'500px';

document.getElementById('Layer2').style.height

=
'
375
';

}



//
-->


</
script
>


</
head
>


<
body
>


<
table
width
="10"
height
="10"
border
="0"
cellpadding
="0"
cellspacing
="0"
>


<
tr
>


<
td
height
="10"
><
div
id
="Layer1"
style
="width:500px; height:375px; z-index:1; background-color: #FF0000; layer-background-color: #FF0000; border: 1px none #000000;"
></
div
></
td
>


</
tr
>


<
tr
>


<
td
>


<
br
><
br
><
br
><
br
>


<
input
type
="button"
value
="click"
onClick
="load()"
><
input
type
="button"
value
="click2"
onClick
="load()"
>


</
td
>


</
tr
>


</
table
>


<
input
type
="button"
value
="click"
onClick
="load()"
>


<
div
id
="Layer2"
style
="position:absolute; width:500px; height:375px; z-index:1; left: -9999px; top: -9999px; background-color: #FF0000; layer-background-color: #FF0000; border: 1px none #000000;"
>
<!--
此处放置控件,略去
-->
</
div
>



</
body
>


</
html
>

也就是在开始将layer2放置在页面之外,在播放的时候可以移到页面之中,可以做到开始的时候页面不显示控件却可以加载控件的目的。这样做可以成功用layer2覆盖layer1,但是却奇怪的发现页面上的几个按钮一块消失了。我对DHTML不是很熟,希望高手可以帮我答疑解惑,或者有什么更好的方法?

标签: none

添加新评论