Avatar billede o-zone Nybegynder
22. august 2007 - 11:17 Der er 9 kommentarer og
1 løsning

Hvordan slipper jeg for at skulle aktivere mit OBJECT?

Hej...

Jeg har en embedded mediaplayer på en hjemmeside. HTML koden ser nogenlunde således ud:
---8<----------
<OBJECT id="VIDEO" width="300" height="200"
    style="position:absolute; left:0;top:0;"
    CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"
    type="application/x-oleobject">
    <PARAM NAME="URL" VALUE="urlen-til-min-film">
    <PARAM NAME="SendPlayStateChangeEvents" VALUE="True">
    <PARAM NAME="AutoStart" VALUE="True">
    <PARAM name="uiMode" value="none">
    <PARAM name="PlayCount" value="9999">
</OBJECT>
---8<----------

Når jeg loader siden dukker der den her grimme grimme border op, og denne besked: "Tryk på mellemrum eller Enter for at aktivere og bruge dette objekt." i en tooltip-kinda box.

Er der nogen der ved hvordan jeg slipper for det? Jeg vil rigtig gerne have at min film bare starter med det samme jeg loader siden, uden nogen form for brugeraktivering (og i særdeleshed ikke med en så grim interaktion!)

:-?
/o-zone
Avatar billede weis Nybegynder
22. august 2007 - 21:09 #1
ja du kan fx. lave en javascript fil med følgende kode:

ie_workaround.js
-----------------------------------
objects = document.getElementsByTagName("OBJECT");
for (var i = 0; i < objects.length; i++)
{
    objects[i].outerHTML = objects[i].outerHTML;
}
-----------------------------------

og så under dit object indsætte filen:

<script type="text/javascript" src="ie_workaround.js"></script>

så skulle det ikke være nødvendigt at klikke for at aktivere
Avatar billede o-zone Nybegynder
23. august 2007 - 09:59 #2
ok - det er jo HELT SORT!!! ... men det virker tilsyneladende, så her har du dine points! :D

Hvem der end har fundet på den workaround er enten meget meget heldig, eller har meget meget godt styr på browsernes måde at rendere sider på??? :-O
Avatar billede weis Nybegynder
23. august 2007 - 11:38 #3
det er microsoft selv der har lavet workarounden, da de blev påbudt at lave aktiverings sikkerheden
Avatar billede nielle Nybegynder
23. august 2007 - 11:47 #4
Interessant - først indføre man noget funktionalitet for at øge sikkerheden, derefter laver man en workaround sådan at joe-the-hacker kan omgå den alligevel?
Avatar billede fennec Nybegynder
23. august 2007 - 11:54 #5
Ville nærmere mene at det er 3.parts personer, som har lavet dette "hack". Aktiveringen er netop lavet, så man ikke kan køre objekter automatisk, og derved afvikle skadelig kode. Jeg er derfor ret sikker på at MS også lukker dette "hack" på et tidspunkt.
Avatar billede olebole Juniormester
23. august 2007 - 16:37 #6
<ole>

MS anbefaler selv lignende 'hacks'. Det er jo noget, MS er blevet pålagt ... ikke noget, de har gjort frivilligt.

Til gengæld virker det lidt komisk, når folk bruger inner- og outerHTML det ene øjeblik - og det næste går op i, om der er brugt tabeller til layout, font-tags og anden stenalderkode.

inner- og outerHTML har intet at gøre i kode fra dette årtusinde  :)

/mvh
</bole>
Avatar billede olebole Juniormester
23. august 2007 - 16:38 #7
- og det samme kan i øvrigt gøres ligeså godt med DOM  ;o)
Avatar billede thesurfer Nybegynder
23. august 2007 - 20:54 #8
Jeg ved nu ikke om det var et "sikkerhedsissue", men Microsoft tabte en retsag mod et universitet i USA, der havde patent på den måde plugins blev implementeret i websider.

Da universitetet havde retten til brugen af fremgangsmåden, er alle browsere-producenter tvunget til at ændre det.. hvilket er grunden til, at implementeringen holdt op med at blive afviklet automatisk.

Så det er ikke en MS-ting.. det er en browser-ting..
PS: De såkaldte "workarounds" findes, til alt, overalt.. Spørgsmålet er bare, om man falder over dem.. :-)

olebole> Giv altid eksempler på korrekt brug af den alternative kode.. ellers lærer man ikke noget nyt, og vil altid bruge den gamle (forkerte) kode.. :-)
Avatar billede olebole Juniormester
23. august 2007 - 22:50 #9
Jeg var på vej ud af døren, så det nåede jeg ikke  :)

window.onload = function(){
    var o = document.getElementById("VIDEO");
    var oo = o.cloneNode(true);
    o.parentNode.replaceChild(oo, o);
    o = null;
    oo.setAttribute("id", "VIDEO");
}

- burde kunne gøre det
Avatar billede olebole Juniormester
23. august 2007 - 22:51 #10
Linjen:
    oo.setAttribute("id", "VIDEO");

- er overflødig  =)
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