Je suis tombé sur cela lors de la tentative d'intégration de l' API de sélection de Dropbox à un plugin que j'écris.
La documentation de l'API vous demande de placer la script
balise suivante en haut de votre fichier:
<script type="text/javascript" src="https://www.dropbox.com/static/api/1/dropins.js" id="dropboxjs" data-app-key="MY_APP_KEY"></script>
Tout va bien et bon, et cela fonctionne réellement quand je le colle directement dans la page appelée dans la section admin. Mais, j'aimerais utiliser une variante de wp_register_script (), wp_enqueue_script () et wp_localize_script () pour transmettre l'ID et la clé d'application de données nécessaires.
J'ai essayé quelques variantes différentes de ceci:
add_action('admin_enqueue_scripts', 'add_dropbox_stuff');
function add_dropbox_js() {
wp_register_script('dropbox.js','https://www.dropbox.com/static/api/1/dropins.js');
wp_enqueue_script('dropbox.js');
wp_localize_script('dropbox.js','dropboxdata',array('id'=>"dropboxjs",'data-app-key'=>"MY_APP_KEY"));
}
Et:
add_action('admin_enqueue_scripts', 'add_dropbox_stuff');
function add_dropbox_stuff() {
wp_register_script('dropbox.js','https://www.dropbox.com/static/api/1/dropins.js');
wp_enqueue_script('dropbox.js');
wp_localize_script('dropbox.js','dropboxdata',array(array('id'=>"dropboxjs"),array('data-app-key'=>"MY_APP_KEY")));
}
MY_APP_KEY est remplacé par la clé d'application appropriée dans mon code. J'apprécierais n'importe quelle direction. Merci.
EDIT: J'ai également essayé de le faire avec un peu de jquery, mais en vain. Je l'ai essayé au chargement du document et sur le document prêt. J'obtiens un {"error": "Invalid app_key"} return.
$('script[src="https://www.dropbox.com/static/api/1/dropins.js?ver=3.6"]').attr('id','dropboxjs').attr('data-multiselect','true').attr('data-app-key','MY_APP_KEY');
wp_localize_script
ne crée pas d'attributs de script. Mais est-il possible de passer la clé de l'application directement dans dropbox.js? Juste une supposition, mais avez-vous essayé array('appKey'=>"MY_APP_KEY")
? C'est le code qui récupère la clé de l'attributif(!Dropbox.appKey){Dropbox.appKey=(e=document.getElementById("dropboxjs"))!=null?e.getAttribute("data-app-key"):void 0}
wp_localize_script
certitude que vous pouvez passer des attributs au script. Je ne sais vraiment pas si cela fonctionnera ou non, mais ce n'est pas une question liée au stress.
wp_localize_script
- ce que c'est d'imprimer un objet codé json dans la sortie html de la page. Cet objet est reconnu par le script et vous pouvez donc l'utiliser. Ce dont vous avez besoin est d'ajouter des attributs à la balise de script etwp_localize_script
ne peut donc pas vous aider.