Avatar billede biskoppen Nybegynder
07. januar 2005 - 14:11 Der er 3 kommentarer og
1 løsning

Copy til clipboard i Mozilla

Jeg har denne kode, som virker fint i en HTML fil som ligger lokalt, men så snart denne HTML fil flyttes til en ekspert server som kaldes via dens domaine, så får jeg følgende fejl :
'uncaught exception: A script from "http://www.myserver.com" was denied UniversalXPConnect privileges.'

Nogen idéer til hvordan man omgåes det?

-----------------------------------------------------------------

function copy_clip(meintext)
{
  if (window.clipboardData)
  {
  // the IE-manier

  window.clipboardData.setData("Text", meintext);
 
  // waarschijnlijk niet de beste manier om Moz/NS te detecteren;
  // het is mij echter onbekend vanaf welke versie dit precies werkt:

  }
  else if (window.netscape)
  {
 
  // dit is belangrijk maar staat nergens duidelijk vermeld:
  // you have to sign the code to enable this, or see notes below

  netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
 
  // maak een interface naar het clipboard

  var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
  if (!clip) return;
 
  // maak een transferable

  var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
  if (!trans) return;
 
  // specificeer wat voor soort data we op willen halen; text in dit geval

  trans.addDataFlavor('text/unicode');
 

  // om de data uit de transferable te halen hebben we 2 nieuwe objecten nodig  om het in op te slaan

  var str = new Object();
  var len = new Object();
 
  var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
 
  var copytext=meintext;
 
  str.data=copytext;
 
  trans.setTransferData("text/unicode",str,copytext.length*2);
 
  var clipid=Components.interfaces.nsIClipboard;
 
  if (!clip) return false;
 
  clip.setData(trans,null,clipid.kGlobalClipboard);
 
  }

  return false;
}
Avatar billede olebole Juniormester
07. januar 2005 - 14:30 #1
<ole>

Jamen, det står jo højt og tydeligt i koden:
  "you have to sign the code to enable this, or see notes below"

Signed scripts er frygteligt dyrt at komme i nærheden af. Du skal nok regne med, det let kan koste dig 20.000 at få gang i Moz' clipboard - og der er ikke andre muligheder  ;o)

/mvh
</bole>
Avatar billede biskoppen Nybegynder
07. januar 2005 - 14:33 #2
Jo, men kan blot ændre en setting i mozilla, så kører det..

about:config

SET signed.app..... = true

Men du skal da også lige have en ;o)
Avatar billede olebole Juniormester
07. januar 2005 - 14:39 #3
Ja, naturligvis kan du gøre det på din egen PC - men jeg går udfra, det skal bruges på nettet
Avatar billede biskoppen Nybegynder
07. januar 2005 - 14:43 #4
Nixen
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