Natknąłem się na to, próbując zintegrować upuszczenie Dropbox w API selektora z wtyczką, którą piszę.
Dokumentacja interfejsu API nakazuje umieszczenie następującego script
znacznika u góry pliku:
<script type="text/javascript" src="https://www.dropbox.com/static/api/1/dropins.js" id="dropboxjs" data-app-key="MY_APP_KEY"></script>
Wszystko dobrze i dobrze, i faktycznie działa, gdy wklejam go bezpośrednio na stronę wywoływaną w sekcji admin. Ale chciałbym użyć pewnej odmiany wp_register_script (), wp_enqueue_script () i wp_localize_script (), aby przekazać wymagany identyfikator i klucz aplikacji danych.
Wypróbowałem kilka różnych odmian tego:
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"));
}
I:
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 zostaje zastąpiony odpowiednim kluczem aplikacji w moim kodzie. Byłbym wdzięczny za każdy kierunek. Dzięki.
EDYCJA: Próbowałem też zrobić to przy pomocy jquery, ale bezskutecznie. Próbowałem po załadowaniu dokumentu i przygotowaniu dokumentu. Otrzymuję zwrot {„error”: „Invalid app_key”}.
$('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
nie tworzy atrybutów skryptu. Ale czy można przekazać klucz aplikacji bezpośrednio do dropbox.js? Tylko zgadnij, ale próbowałeś array('appKey'=>"MY_APP_KEY")
? Jest to kod, który pobiera klucz z atrybutuif(!Dropbox.appKey){Dropbox.appKey=(e=document.getElementById("dropboxjs"))!=null?e.getAttribute("data-app-key"):void 0}
wp_localize_script
pewnością możesz przekazać atrybuty do skryptu. Naprawdę nie wiem, czy to zadziała, czy nie, ale nie jest to kwestia związana z niepokojem.
wp_localize_script
to jest wydrukować obiekt zakodowany w formacie json na wyjściu HTML strony. Ten obiekt jest rozpoznawany przez skrypt i można go używać. Musisz dodać niektóre atrybuty do tagu skryptu, więcwp_localize_script
nie mogę ci pomóc.