尝试将Dropbox 在选择器API中的放置集成到我正在编写的插件中时,我遇到了这个问题。
API文档指示您将以下script
标记放在文件顶部:
<script type="text/javascript" src="https://www.dropbox.com/static/api/1/dropins.js" id="dropboxjs" data-app-key="MY_APP_KEY"></script>
一切都很好,当我直接将其粘贴到admin部分中调用的页面中时,它实际上可以工作。但是,我想使用wp_register_script(),wp_enqueue_script()和wp_localize_script()的一些变体来传递必要的id和data-app-key。
我已经尝试了几种不同的变化:
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"));
}
和:
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在我的代码中替换为适当的应用程序密钥。将不胜感激任何方向。谢谢。
编辑:也试图用一些jquery,但无济于事。在加载文档和准备文档时对其进行了尝试。我收到{“错误”:“无效的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
它不会创建脚本属性。但是可以将应用程序密钥直接传递到dropbox.js吗?只是一个猜测,但您尝试过array('appKey'=>"MY_APP_KEY")
吗?这是从属性中if(!Dropbox.appKey){Dropbox.appKey=(e=document.getElementById("dropboxjs"))!=null?e.getAttribute("data-app-key"):void 0}
wp_localize_script
确保可以将属性传递给脚本。我真的不知道这是否行得通,但这不是与工作相关的问题。
wp_localize_script
是在页面的html输出中打印一个json编码的对象。脚本可以识别该对象,因此您可以使用它。您需要在脚本标签中添加一些属性,因此wp_localize_script
无济于事。