Wordpress插件,发送字符串到JS函数

时间:2015-04-30 11:49:01

标签: javascript php wordpress plugins

所以我为wordpress网站创建了一个插件。在其中我想调用一个JavaScript函数(带有一个字符串),该函数位于我刚刚入队的文件中。但什么都没发生。有人能看到错误吗?

ui.start()

在imagefix.js中,这是代码:

function tsd_getscript() {
    if(is_single()){
        wp_enqueue_script( 'imagefix-js', get_template_directory_uri() . '/js/imagefix.js', array(), '1.0.0', true);
        echo "<script>alertText('TEST');</script>";
    }
}
add_action( 'wp_enqueue_scripts', 'tsd_getscript' );

所有我得到的是控制台说alertText是未定义的。所以它就像它根本不加载js文件一样..我在这里错过了一些明显的东西吗?

编辑:所以由于未定义我检查了源代码并且警报代码被加载到头部但是正文中的脚本,如何在加载脚本后完成警报?

1 个答案:

答案 0 :(得分:0)

wp_enqueue_script()没有立即将脚本输出到浏览器,它会对它进行排队,并在模板中调用时呈现。

但是,当您echo <script>标记时,它会立即输出它,因此在那时,您的外部脚本甚至没有被发送到浏览器,更不用说加载了。

要演示,您可以在window.onload

中打包电话
echo "<script>window.onload = function(){ alertText('TEST'); };</script>";

但是一个合适的解决方案,例如是将脚本输出到模板中的某个位置,如页脚:

function do_inline_script(){
    echo "<script>alertText('TEST');</script>";
}

add_action( 'wp_footer', 'do_inline_script' );
相关问题