我们可以通过某种方式使用wp_localize_script()创建全局js变量而没有可以从所有js文件访问的特定脚本句柄,即使未使用wp_enqueue_script正确地将js脚本排入队列吗?
这是我正在使用的代码,用于为“ ajaxscript”句柄创建变量,因此我无法访问js文件中的对象“ ajaxobject”,该文件直接包含在header.php中, <script src="xxx" .... />
wp_register_script( 'ajaxscript', get_bloginfo( 'template_url' ) . '/js/ajaxscript.js', array(), $version );
wp_enqueue_script( 'ajaxscript' );
wp_localize_script( 'ajaxscript', 'ajaxobject',
array(
'ajaxurl' => admin_url( 'admin-ajax.php' ),
'ajaxnonce' => wp_create_nonce( 'itr_ajax_nonce' )
)
);
如果您控制这些脚本,那么您将如何处理头部未正确排队的脚本?wp_localize_script的概念是使您可以使用自己的脚本-您正在使用wp_enqueue_script正确加载该脚本。在哪种情况下,您会故意在需要这些变量的头文件中加载脚本,而不是通过wp_enqueue_script加载脚本?
—
cale_b 2013年
@cale_b:header.php中已经包含一个脚本,并且其中包含许多脚本,当我尝试通过wp_enqueue_script将该js文件放入队列时,这些脚本开始中断工作。我需要从该脚本文件中进行ajax调用。因此,与其破坏功能并一一修复,我需要一个快速的解决方案。甚至我也不知道网站的哪一部分会因为'wp_enqueue_script'的微小变化而中断:(
—
Subharanjan 2013年
很公平。提示,获取适用于Firefox的Firebug,您可以使用控制台观看/查看javascript错误。故障排除的宝贵工具。
—
cale_b
wp_localize_script
无论如何,这就是事实。使用这两种方法,都可以从任何脚本访问变量