Avatar billede para7 Nybegynder
28. august 2008 - 09:51 Der er 13 kommentarer og
1 løsning

Synlig og usynlig tekst

Jeg har et script på et videosite som ud fra om Windows Media Player embedded er i play eller ikke - tilstand viser eller skjuler en knap.

Jeg vil gerne tilføje en ekstra knap/tekst et andet sted på siden. Jeg har prøvet at tilføje en ekstra lignende linje i scriptet, med det virker ikke.

Fejl: document.getElementById('....') is null or not an object

Her er min kode:

<script type="text/javascript">
<!--
function synlig(){
document.getElementById('fullScreenButton').innerHTML="<img src='../MASTER/img/fullscreen.gif' alt='Klik for fuldskærm...'    style='position:absolute;top:648px;left:930px;cursor:pointer'    onclick='fullScreen()'>";
document.getElementById('test').innerHTML="******test knap/tekst******" //denne linje dur ikke, ødelægger scriptet
pageMax();
}
//-->
</script>
<script type="text/javascript"><!--
function usynlig(){
document.getElementById('fullScreenButton').innerHTML="";
document.getElementById('test').innerHTML="" //denne linje dur ikke, ødelægger scriptet
}
//-->
</script>

<span id="fullScreenButton"></span>
<span id="test"></span>

Der er da bare noget der manger,ikke?
Avatar billede para7 Nybegynder
28. august 2008 - 10:26 #1
Jeg glemte lige at der ovenover er de her:

<SCRIPT type="text/javascript">
<!--
function timeout1() {
    if (MediaPlayer1.playState==3)
    {
    synlig();
    setTimeout("timeout2();",500);
    }
    else
    {
    usynlig();
    setTimeout("timeout2();",500);
    }
}
//-->
</SCRIPT>
<SCRIPT type="text/javascript">
<!--
function timeout2() {
    if (MediaPlayer1.playState==3)
    {
    synlig();
    setTimeout("timeout1();",500);
    }
    else
    {
    usynlig();
    setTimeout("timeout1();",500);
    }
}
//-->
</SCRIPT>
Avatar billede w13 Novice
29. august 2008 - 12:36 #2
Du viser intet sted, hvor du kører dine funktioner.
Avatar billede para7 Nybegynder
29. august 2008 - 14:00 #3
Sorry, det er hemmeligt indtil færdigudviklet. Og det er ikke let lige at lave en testside.
Avatar billede w13 Novice
29. august 2008 - 14:03 #4
Jeg mener: du kalder ikke dine funktioner i den kode, du viser. Og det kan være ret vigtigt at se, hvor og hvornår og hvordan du gør det.
Avatar billede para7 Nybegynder
29. august 2008 - 19:00 #5
det skulle gøres her:
if (MediaPlayer1.playState==3)
    {
    synlig();
Avatar billede w13 Novice
29. august 2008 - 21:56 #6
Men hvornår bliver timeout1 og timeout2 så kørt? Det er umuligt for mig at se, hvor den skulle være gal ud fra det, du har vist.
Avatar billede para7 Nybegynder
30. august 2008 - 09:18 #7
Det virker ihvertfald uden den ekstra linje jeg har tilføjet:
document.getElementById('test').innerHTML="" //denne linje dur ikke, ødelægger scriptet
Avatar billede para7 Nybegynder
30. august 2008 - 09:19 #8
Men jeg har gravet en testside frem for en simpel udgave af scriptet: http://n7.dk/embed%20med%20playState.htm
Avatar billede para7 Nybegynder
30. august 2008 - 09:22 #9
Scriptet er lavet af gurly http://www.eksperten.dk/spm/837292
Her er kildekoden hvis nogen kan hjælpe mig med at udvide det:

<HTML>
<HEAD>
<TITLE>Embedded WM Player Control</TITLE>
<script type="text/javascript">
<!--
function fullScreen() {
Player = document.getElementById("MediaPlayer1")
if (Player.playState==3)
{
        Player.AutoSize = 0;
        Player.AllowChangeDisplaySize = 1;
        Player.DisplaySize = 3;
        Player.fullScreen = 1;
}
}
//-->
</script>
<SCRIPT type="text/javascript">
<!--
function timeout1() {
    if (MediaPlayer1.playState==3)
    {
    synlig();
    setTimeout("timeout2();",500);
    }
    else
    {
    usynlig();
    setTimeout("timeout2();",500);
    }
}
//-->
</SCRIPT>
<SCRIPT type="text/javascript">
<!--
function timeout2() {
    if (MediaPlayer1.playState==3)
    {
    synlig();
    setTimeout("timeout1();",500);
    }
    else
    {
    usynlig();
    setTimeout("timeout1();",500);
    }
}
//-->
</SCRIPT>
<script type="text/javascript">
<!--
function synlig(){
document.getElementById('fullScreenButton').innerHTML="<img src='../MASTER/img/fullscreen.gif' alt='Klik for fuldskærm...'    style='position:absolute;top:648px;left:1050px;cursor:pointer'    onclick='fullScreen()'>"
}
//-->
</script>
<script type="text/javascript"><!--
function usynlig(){
document.getElementById('fullScreenButton').innerHTML="usynlig";
}
//-->
</script>
</HEAD>
<BODY onload="timeout1();">


<object id="MediaPlayer1" width="848" Height="544"  class="player"
classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"
style="position:absolute; top:-2px; left:0px"
standby="Loading Media Player"
Type="application/x-oleobject" VIEWASTEXT>
<param name="AutoStart" value="0">
<PARAM NAME="StretchToFit" VALUE="-1">
<param name="URL" value="testclip.avi">
</object>

<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<div onclick="MediaPlayer1.controls.play()" style="cursor:pointer">Start</div>
<br>
<br>

<span id="fullScreenButton"></span>

<br>
<br>
</BODY>
</HTML>
Avatar billede w13 Novice
30. august 2008 - 11:33 #10
Nu har jeg rettet din kode lidt til, inden jeg testede, og det ser ud til at fungere helt fint med:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Embedded WM Player Control</title>

<script type="text/javascript">
function fullScreen(){
    var Player=document.getElementById("MediaPlayer1")
    if(Player.playState==3){
        Player.AutoSize=0;
        Player.AllowChangeDisplaySize=1;
        Player.DisplaySize=3;
        Player.fullScreen=1;
    }
}

function timeout1(){
    if(MediaPlayer1.playState==3){
        synlig();
        window.setTimeout("timeout2()",500);
    }else{
        usynlig();
        window.setTimeout("timeout2()",500);
    }
}

function timeout2(){
    if(MediaPlayer1.playState==3){
        synlig();
        window.setTimeout("timeout1();",500);
    }else{
        usynlig();
        window.setTimeout("timeout1();",500);
    }
}

function synlig(){
    document.getElementById('fullScreenButton').innerHTML="<img src='../MASTER/img/fullscreen.gif' alt='Klik for visning i fuld skærm' style='position:absolute;top:648px;left:1050px;cursor:pointer' onclick='fullScreen()'>"
}

function usynlig(){
    document.getElementById('fullScreenButton').innerHTML="usynlig";
}
</script>
</head>
<body onload="timeout1()">

<object id="MediaPlayer1" width="848" Height="544"  class="player" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" style="position:absolute;top:-2px;left:0" standby="Loading Media Player" type="application/x-oleobject" viewastext>
<param name="AutoStart" value="0">
<param name="StretchToFit" value="-1">
<param name="URL" value="file:\\\C:\Users\Tobias\Videos\Helpdesk.wmv">
</object>

<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<div style="cursor:pointer" onclick="MediaPlayer1.controls.play()">Start</div>
<br><br>

<span id="fullScreenButton"></span>

</body>
</html>
Avatar billede w13 Novice
30. august 2008 - 11:34 #11
Men din kode virker selvfølgelig kun i Internet Explorer, da du bruger Windows Media Player som afspiller.
Avatar billede para7 Nybegynder
30. august 2008 - 13:07 #12
Så langt så godt, men når jeg udvider med en ekstra knap der skal vises/skjules kommer scriptfejlen "is null or not an object":

function synlig(){
    document.getElementById('fullScreenButton').innerHTML="*****Fuldskærmsknap vises her når klippet afspilles*****";
    document.getElementById('extraButton').innerHTML="*****Ekstra knap vises her når klippet afspilles*****";
}

function usynlig(){
    document.getElementById('fullScreenButton').innerHTML="*****Fuldskærmsknap skjules her når klippet ikke afspilles*****";
    document.getElementById('extraButton').innerHTML="*****Ekstra knap skjules her når klippet ikke afspilles*****";
}
</script>
</head>
<body onload="timeout1()">

<object id="MediaPlayer1" width="848" Height="544"  class="player" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" style="position:absolute;top:-2px;left:0" standby="Loading Media Player" type="application/x-oleobject" viewastext>
<param name="AutoStart" value="0">
<param name="StretchToFit" value="-1">
<param name="URL" value="testclip.avi">
</object>

<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<div style="cursor:pointer" onclick="MediaPlayer1.controls.play()">Start</div>
<br><br>

<span id="fullScreenButton"></span>
br><br>
<span id="Span1"></span>

</body>
</html>
Avatar billede para7 Nybegynder
30. august 2008 - 13:09 #13
Hov, sådan her:

<span id="fullScreenButton"></span>
<br><br>
<span id="extraButton"></span>

Og så virker det bare :)
Tak for nu...
Avatar billede w13 Novice
30. august 2008 - 13:27 #14
:) Tak for point!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester