Toon posts:

[js] iframe -> designmode=on ->paste afvangen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Ik wil de paste functie in een iframe afvangen. Dus rechtermuisknop en ook CTRL-V. Wat mij betreft mag de innerHTML zo als innerText ingelezen worden in het iframe op een paste actie.

Ik dacht dat dit met onBeforePaste of onPaste kon.

Ik laad nu dit in het iframe:
code:
1
<html><body onPaste="alert('test')"></body></html>


Als ik dan wat paste dan herkent hij dit event niet en alert dus niks.

Ik snap niet goed wat ik fout doe? Ik las wel op MSDN dat ik de returnvalue van dit event op false moet zetten om hiervan gebruik te kunnen maken. Zover kom ik nog niet eens.

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

code:
1
2
3
4
5
6
7
8
9
10
11
12
<html>
<head>
<script type="text/javascript">
function evtPaste () {
    event.returnValue = false;
    alert('test');
}
</script>
</head>
<body onpaste="evtPaste()" contenteditable>
</body>
</html>


Dat bedoelen ze ;)

[ Voor 30% gewijzigd door Bosmonster op 17-05-2004 18:38 ]


Verwijderd

Topicstarter
Hey Bosmonster,

bedankt voor je reply. Ik zat al op een van jou of crisp te wachten. :)
Ik kom er nog steeds niet helemaal uit.

Ik kan het event maar niet afvangen op de een of andere manier.
Ik heb de volgende code, wat me goed lijkt. Toch herkent hij een ctrl-v of rechtermuisknop-plakken niet.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html>
<head>
<script language="javascript">
function init()
{
    iView.document.designMode="On";
    iView.document.write('<html><body onpaste="evtPaste()">blabla</body></html>')
}
function evtPaste () 
{
    event.returnValue = false;
  alert('test');
}

</script>
</head>

<body onLoad="init();">
<iframe id="iView" designMode="on"></iframe>
</body>

[ Voor 16% gewijzigd door Verwijderd op 17-05-2004 21:06 ]


Verwijderd

Je definieert een functie in het ene window object (functies zijn methodes van het window object) maar roept hem aan vanuit een ander window object (het iframe). Zou dat werken?

Verwijderd

Topicstarter
hmm, inderdaad discutabel :). Maar met de volgende code kan ik de functie ook niet benaderen.

code:
1
2
3
4
5
function init()
{
    iView.document.designMode="On";
    iView.document.write('<html><body onpaste="parent.evtPaste()">hallo dsf</body></html>')
}

  • kleautviool
  • Registratie: Mei 2003
  • Laatst online: 21-05 19:24
Bestaat de event-handler onpaste dan? :?
Nog nooit van gehoord

Verwijderd

Topicstarter
Jep en ook onbeforePaste(). Kijk maar op msdn. :)

Verwijderd

Heerlijk IE only natuurlijk!

Verwijderd

Topicstarter
Jep klopt, maar met zo'n reply heb ik nog geen antwoord. :)

Verwijderd

Hij eet het onpaste event niet op het document object van het IFRAME, heel vreemd want de MSDN documentatie zegt dat onpaste ook moet werken op het document object. :?

Bug?

Onderstaand voorbeeld werkt wel... (beetje ranzig)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html>
<head>
<script language="javascript">
function init()
{
  var d = document.getElementById("iView").contentWindow.document;
  d.designMode="On";
  d.write("<html><body></body></html>");
  d.close();
  d.body.onpaste = function () {
    return false;
  }   
}

</script>
</head>

<body onLoad="init();">
<iframe id="iView"></iframe>
</body>

Verwijderd

Topicstarter
Wat betreft ranzigheid vind ik dat wel meevallen. Hier ben ik in ieder geval een heel eind mee geholpen.

Bedankt!
Pagina: 1