2011-03-11 3 views
3

Dans mon search pour une manière Javascript de sélectionner du contenu WebView par programmation, j'ai rencontré this Javascript code snippet, qui utilise une méthode nommée setData() dans un membre nommé clipboardData dans l'objet window.window.clipboardData ne fait pas partie de Javascript?

Mais lorsque j'ai essayé de trouver la documentation dans un Javascript reference, clipboardData était introuvable.

Pourquoi?

Est-ce que window.clipboardData ne fait pas partie de Javascript ou DOM?

Répondre

7

Non, cela ne fait partie d'aucune norme. Sauf pour IE, la plupart des navigateurs n'autorisent pas l'accès au presse-papiers en raison de problèmes de sécurité (vous ne voulez pas que des pages Web arbitraires lisent des informations sensibles que vous avez placées dans votre presse-papiers).

+0

Donc, si je vous comprends bien, window.clipboardData est uniquement reconnu par Internet Explorer? –

+1

@Regex Rookie: Pour autant que je sache, oui, seul IE le supporte. – casablanca

+0

Merci. Vous semblez bien connaître Javascript. Connaissez-vous aussi la réponse pour http://stackoverflow.com/questions/5277882/how-to-select-all-webview-content-using-javascript? –

2

Je crois que seul IE vous permet d'accéder au presse-papiers. Les anciennes versions d'autres navigateurs étaient utilisées, mais elles ont été désactivées par défaut par mesure de sécurité. Les utilisateurs peuvent explicitement l'activer via les paramètres/options/préférences, mais ce n'est évidemment pas idéal dans la plupart des situations.

La solution de contournement consiste à utiliser un objet flash sur la page. Puisque Flash 10 a ajouté plus de couches de sécurité, l'interaction de l'utilisateur est également requise maintenant avec l'objet flash (par exemple, un clic plutôt qu'un événement onload).

J'ai trouvé et mis en œuvre le bon travail de l'article bien écrit au bas de ma réponse. Il explique le problème plus en détail, avec des liens vers des déclarations officielles d'Adobe/Mozilla et fournit un exemple utilisable et téléchargeable, ainsi que le code source de la fla. C'est pratique si vous voulez reskin/remodeler son bouton.

J'ai testé avec succès sur Windows7 en utilisant le dernier (au 7/7/2011) Safari/FF/Chrome/Safari/RockMelt/FF/IE7/IE8/IE9 et MacOSX (SL). Le seul inconvénient est qu'il utilise le flash qui est principalement bien, sauf pour certaines plates-formes mobiles et une petite partie de (ab) utilisateurs normaux. Aussi, j'ai trouvé que vous devez accéder à http (un serveur Web), l'ouverture et l'utilisation de la page de démonstration via le système de fichiers (double-cliquant sur le fichier html dans l'Explorateur) ne fonctionnera pas.

Merci pour le partage Rahul, travail impressionnant.

http://www.rahulsingla.com/blog/2010/03/cross-browser-approach-to-copy-content-to-clipboard-with-javascript

Questions connexes